2011-03-13 22 views
10

Mesaj kutusu konumunu değiştirmem gerekiyor. Sayfanın ortasında olmasını istemiyorum.MessageBox konumunu nasıl değiştiririm?

MessageBox.Show("Hello"); 
+19

Başlığınızı 'massagebox'dan (güzel sesler)' messagebox' olarak değiştirdim. – jgauffin

+2

@jgauffin, 'winforms' etiketi biraz yanlış, çünkü' MessageBox' da WPF'de kullanılabilir. –

+0

olası kopyası [Winforms-MessageBox MainForm üzerinde ortalanmış görünmesini nasıl sağlayabilirim?] (Http://stackoverflow.com/questions/2576156/winforms-how-can-i-make-messagebox-appear-centered-on-mainform) –

cevap

2

MessageBox formundan miras kalan yeni bir form oluşturmanız gerekecektir. Konum özelliklerine erişmenin tek yolu budur.

11

Normal olarak, standart mesaj kutusunun başlangıç ​​konumunu değiştiremezsiniz. Sorunuza

Çözümleri:

2

Konumu değiştirmenin bir yolu var, ancak bu kadar küçük bir görev için yolu çok karmaşık.
Konumunu gerçekten değiştirmeniz gerekiyorsa, görüntüleyebilir, ardından bir pencere tanıtıcısı almak için GetForegroundWindow, ardından istediğiniz konuma MoveWindow kullanın.
Ancak, daha önce de belirttiğim gibi, bu çok karmaşık.
Sadece üzerinde bir etiket bulunan bir "Tamam" düğmesi ile kendi formunuzu oluşturun. Düğmeyi varsayılan pencere düğmesi olarak ayarlayın ve sonra da Form1'de MyWndName.ShowDialog();

+0

çok fazla tnank yaptım dedim dedim ve onun çalışması – guy

+0

'GetForegroundWindow' size oluşturulan mesaj kutusunun ele vereceğinden emin olamazsınız. O anda başka bir uygulamanın ön plana çıkması olasıdır. –

2

Yapabilecekleriniz Yeni bir pencere oluşturmak, AllowsTransparency özelliğini true olarak ayarlamak ve Arka Planı Saydam olarak ayarlamaktır. Bu pencerede bir TextBlock veya bir etiket koyabilirsiniz ve ayrıca Evet/Hayır Düğmeleri ekleyebilirsiniz. Bu pencerenin konumunu Canvs.SetTop (Pencere, TopPosition) ve Canvas.SetLeft (Pencere, LeftPosition) kullanarak ayarlayın. sonra, pencereyi Show() veya ShowDialog() yöntemiyle çağırın.

İlgili konular