WinForm'da Simge Durumuna Küçült ve Büyüt'ü Devre Dışı Bırakmak?


100

WinForms sağ üst köşede formu küçülten, büyüten ve kapatan üç kutuya sahiptir. Yapabilmek istediğim şey, yakınlığı korurken küçültmek ve büyütmek.

Ayrıca formu kapatmak yerine küçültmek için ne yapmalıyım.

Bu nasıl yapılabilir?

Yanıtlar:


162

FormOlarak adlandırılan iki özelliği vardır MinimizeBoxve MaximizeBoxbunların her ikisi de set, false.

Formun kapatılmasını durdurmak için FormClosingolayı işleyin e.Cancel = true;ve orada ayarlayın ve ardından WindowState = FormWindowState.Minimized;formu simge durumuna küçültmek için ayarlayın .


1
Kontrol kutusunu sadece yanlış olarak ayarlayamaz mısınız?
krystan

3
@krystanhonour OP yine de yakın kalmak istedi.
Hans Olsson

16

Özellikleri ayarlayın MaximizeBoxve MinimizeBoxbiçimlendirinFalse


15

Bir işleyiciyi FormClosingolaya bağlayın , ardından e.Cancel = trueformu ayarlayın ve ayarlayın this.WindowState = FormWindowState.Minimized.

Hiç gerçekten yakın forma istiyorsanız, sınıfsal boole'sini yapmak _closeişleyicinizde, sette ve e.Cancelkarşı !_closeböylece kullanıcı tıkladığında o, Xpencerenin, bir kapanmıyor, ama sen hala yakın o (olmadan sadece öldürmek) ileclose = true; this.Close();

(Ve sadece cevabımı tamamlamak için) özellikleri ayarlayın MaximizeBoxve MinimizeBoxoluşturun False.


5

Gizlemek istediğiniz forma sağ tıklayın, Kontroller -> Özellikler'i seçin.

Özellikler'de,

  • Kontrol Kutusu -> Yanlış
  • Kutuyu Küçült -> Yanlış
  • Kutuyu Büyüt -> Yanlış

Bunu tasarımcıda yapacaksınız.


4

Kapatma zaten yanıtlanmışken form nasıl küçültülür, ancak küçültme ve büyütme düğmelerinin nasıl kaldırılacağı değildi.
FormBorderStyle: FixedDialog
MinimizeBox: false
MaximizeBox:false


3

form yapıcısını maksimize et seçeneğini devre dışı bırakabilirsiniz.

 public Form1(){
     InitializeComponent();
     MaximizeBox = false;
 }

kapatırken en aza indirmek için.

private void Form1_FormClosing(Object sender, FormClosingEventArgs e) {
    e.Cancel = true;
    WindowState = FormWindowState.Minimized;
}

0
public Form1()
{
InitializeComponent();
//this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
this.MaximizeBox = false;
this.MinimizeBox = false;
}

2
Lütfen cevabınıza biraz açıklama ekleyin
mechnicov

Arkadaşım, bu kod her satır okumak, çok kolay sadece zorunluluktur
Mauricio Kenny

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.