Soru Göstermek için ShowDialog kullanırken bir iletişim kutusunun konumunu nasıl kontrol edebilirim?


Bu çok önemsiz bir sorundur ama çözmenin bir yolunu bulamıyorum. Beni sinir ediyor, çünkü bunun cevabını bilmem gerektiğini düşünüyorum, ama ya yanlış terimleri arıyorum ya da yanlış yöntemlere ve özelliklere bakıyorum.

İki yerden denen bir konfigürasyon iletişimim var.

Birincisi, beklediğiniz gibi doğru çalışan formdaki düğmedir.

İkincisi, sistem tepsisindeki notifyIcon'daki bir içerik menüsünden, ancak burada ekranın sol üstünde görünür. İdeal olarak, birincil ekran üzerinde ortalanmış görünmesini veya belki de sistem tepsisine yakın olmasını isterim.

  • Ayarlamayı denedim Locationama bu zaman aşımına uğramış görünüyor dialog.ShowDialog() denir.

  • Kullanarak denedim dialog.ShowDialog(IWin32Window) aşırı yük, ama bu benim geçmemi sevmiyordu null pencere kolu olarak.

  • Kullanarak denedim dialog.Show() bunun yerine, (ve burası yanlış gidebildiğim yer), konumun ayarlanması tutarlı sonuçlar veriyor gibi görünmüyor.

  • Ayarlamayı bile denedim dialog.Parent özellik - tabii ki bir istisna ortaya çıkardı.

Ben sadece, bazı cevapları gördüğümde (umarım) cevabın açık olduğunu anlayacağımı biliyorum, ama şu anda tamamen sıkışmış durumdayım.

Yanıtlar için teşekkürler - açık olduğundan şüphelendiğim gibi, ama her zamanki gibi kendimi yanlış yoldan saptırmak zorunda kaldım. Daha da sinir bozucu olan şey, bu özelliği tasarımcıdan da kullandım.


32
2018-06-15 22:09


Menşei


Aynı problem vardı. Benim için Load olayı sırasında Location set çalıştı - TomB


Cevaplar:


Sen ayarlayabilirsiniz Form.StartPosition mülk FormStartPosition.Manual ve sonra Form.Location İstediğiniz yere özellik. Aradığın zaman ShowDialog Form istenilen yerde görünmelidir.

MyForm frm = new MyForm();
frm.StartPosition = FormStartPosition.Manual;
frm.Location = new Point(10, 10);
frm.ShowDialog();

40
2018-06-15 22:21



System.Drawing.Point Point sınıfı tam adıdır - Argeman


Form kullandığınızı varsayalım, bu durumda Form.StartPosition numaralandırmayı kullanabilirsiniz. Hakkında daha fazla bulabilirsiniz İşte ve numaralandırma davranışı İşte.


21
2018-06-15 22:16





Formdaki StartPosition özelliğini deneyin.


4
2018-06-15 22:16