Saya perlu cara untuk memusatkan jendela saat ini. Jadi misalnya, jika pengguna menekan tombol, saya ingin jendela untuk memusatkan dirinya di layar. Saya tahu Anda bisa menggunakan properti startposition, tapi saya tidak bisa menemukan cara untuk menggunakannya selain ketika aplikasi pertama kali dinyalakan. Jadi bagaimana cara memusatkan formulir di layar?
129
Jawaban:
Gunakan metode Form.CenterToScreen () .
sumber
Menggunakan jendela Properti
Pilih formulir → pergi ke jendela properti → pilih "mulai posisi" → pilih apa pun tempat yang Anda inginkan.
Secara terprogram
Form form1 = new Form(); form1.StartPosition = FormStartPosition.CenterScreen; form1.ShowDialog();
Catatan: Jangan langsung memanggil Form.CenterToScreen () dari kode Anda. Baca di sini .
sumber
Satu baris:
sumber
Screen screen = Screen.FromControl(this);
sini.Screen.FromControl(this)
tetapi tetap menggunakannyaPrimaryScreen
. (Saya sedang mengembangkan aplikasi di bawah batasan perangkat keras) :-)Dalam Bentuk Windows:
Di WPF:
Itu yang harus Anda lakukan ...
sumber
Jika Anda ingin memusatkan windows Anda selama runtime gunakan kode di bawah ini, salin ke aplikasi Anda:
Dan akhirnya panggil metode di atas untuk membuatnya berfungsi:
sumber
this.Location = Screen.AllScreens[0].WorkingArea.Location;
sebelumnya, jawaban lain tidak berfungsi dalam kasus memindahkan aplikasi saat menggunakan beberapa layar.Memusatkan formulir dalam runtime 1.
Set properti properti berikut:
-> StartPosition: CenterScreen
-> WindowState: Normal
Ini akan memusatkan formulir saat runtime tetapi jika ukuran formulir lebih besar dari yang diharapkan, lakukan langkah kedua.
2. Tambahkan Ukuran Khusus setelah InitializeComponent ();
sumber
Pusatkan jendela apa pun yang bisa Anda tangani
sumber
Gunakan ini:
sumber
Gunakan properti Lokasi dari formulir. Atur ke titik kiri atas yang diinginkan
diinginkan x = (desktop_width - form_witdh) / 2
diinginkan y = (desktop_height - from_height) / 2
sumber
Anda dapat menggunakan
Screen.PrimaryScreen.Bounds
untuk mengambil ukuran monitor utama (atau memeriksaScreen
objek untuk mengambil semua monitor). Gunakan orang-orang denganMyForms.Bounds
untuk mencari tahu di mana harus meletakkan formulir Anda.sumber
Mungkin tidak sepenuhnya relevan dengan pertanyaan. Tapi mungkin bisa membantu seseorang.
Layar Tengah bukan pekerjaan di atas untuk saya. Alasannya adalah saya menambahkan kontrol secara dinamis ke formulir. Secara teknis ketika berpusat itu benar, berdasarkan pada formulir sebelum menambahkan kontrol.
Jadi, inilah solusi saya. (Harus bekerja dengan kedua skenario)
Jadi, Anda akan melihat bahwa saya menggunakan "PreferredSize" bukan hanya menggunakan Tinggi / Lebar. Ukuran yang disukai akan menyimpan nilai formulir setelah menambahkan kontrol. Di mana Tinggi / Lebar tidak akan.
Semoga ini bisa membantu seseorang.
Bersulang
sumber
Dalam hal multi monitor dan Jika Anda lebih suka memusatkan pada monitor / layar yang benar maka Anda mungkin ingin mencoba baris ini:
sumber