2009-05-29 35 views
6

Form yüklendiğinde certian koşulları karşılanırsa bir iletişim kutusu açan bir pencere formum var. Sorun, pencerenin üstte kalmaması ve ebeveyni hala tıklayabilmem. Bununla birlikte, basıldığında aynı pencereyi açan bir düğme vardır, bunu yaptığımda beklendiği gibi çalışır (bir iletişim penceresi gibi).ShowDialog() pencere modelini oluşturmuyor

Bir form ilk kez yüklendiğinde bir iletişim kutusu gösterme sorunu var mı?

+1

düzgün sahibini kurdun mu? – OregonGhost

+0

Bunun için herhangi bir sebep olabilir; Rastgele tahmin etmekten başka, sorunu teşhis etmenin tek yolu kullanmakta olduğunuz kodu görmektir. –

cevap

2

FormDialog'u Form sınıfından mı arıyorsunuz? Çünkü yalnızca başka bir formdan çağrıldığında üst pencereyi ayarlayacaktır. Alternatif olarak, özellikle sahibini ayarlamak için IWin32Window parametresine sahip aşırı yüklemeyi kullanabilirsiniz.

0

bu iletişim ya sen de yapabilirsiniz diğer tarafta ebeveyni ya da değil

private void Form1_Load(object sender, EventArgs e) 
     { 
      //your functionality goes here  
      AboutBox1 box = new AboutBox1(); 
      box.ShowDialog(); 
     } 
    } 

set kapatılana kadar formu kendini gösterme kodum olduğu gibi sorunu daha ayrıntılı açıklayabilir TopMost özelliği ile kontrol edin

0

ShowDialog yönteminin, bu form için kalıcı olması için üst öğe/sahip olmak istediğiniz formdan çağrılması gerekir. Alternatif olarak, bir iletişim kutusunun sahibini doğrudan ayarlayabileceğine inanıyorum, ancak bunu asla yapmaya gerek duymadım.

0

DaBomb,

istediğini yapmak için, DEĞİL Form_Load olayından, ana formun yapıcı adresinin kalıcı iletişim çağırmak zorunda kalacaktır. Böyle

şey:

public Form1() 
    { 
     InitializeComponent(); 
     this.Show(); 
     Form2 popupForm = new Form2(); 
     popupForm.ShowDialog(); 
    }