Windows Forms: jak ukryć przycisk Zamknij (x)?
Mam okno modalne i muszę ukryć przycisk Zamknij (X), ale nie mogę użyć
ControlBox = false
, ponieważ muszę zachować przyciski minimalizacji i maksymalizacji.
Muszę ukryć przycisk Zamknij, czy jest jakiś sposób, aby to zrobić?
Wielkie dzięki!
Update: miałem prawo go wyłączyć, co jest prostsze :) dzięki wszystkim!
8 answers
Nie można jej ukryć, ale można ją wyłączyć, nadpisując właściwość CreateParams formularza.
private const int CP_NOCLOSE_BUTTON = 0x200;
protected override CreateParams CreateParams
{
get
{
CreateParams myCp = base.CreateParams;
myCp.ClassStyle = myCp.ClassStyle | CP_NOCLOSE_BUTTON ;
return myCp;
}
}
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-04-27 06:45:19
Możemy ukryć przycisk Zamknij w formularzu, ustawiając this.ControlBox=false;
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-11-09 20:42:38
Możesz to ukryć, usuwając całe menu systemowe:
private const int WS_SYSMENU = 0x80000;
protected override CreateParams CreateParams
{
get
{
CreateParams cp = base.CreateParams;
cp.Style &= ~WS_SYSMENU;
return cp;
}
}
Oczywiście usuwa przyciski Minimalizuj i Maksymalizuj.
Jeśli zachowasz menu systemowe, ale usuniesz pozycję Zamknij, to przycisk Zamknij pozostaje, ale jest wyłączony.
Ostatnią alternatywą jest samodzielne malowanie obszaru poza klientem. Ciężko to zrozumieć.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-09-04 20:36:11
Jeśli naprawdę chcesz go ukryć, jak w "niewidoczny", prawdopodobnie będziesz musiał utworzyć formularz bez obramowania i samodzielnie narysować komponenty podpisu. Biblioteka VisualStyles posiada dostępne elementy systemu Windows. Trzeba by również dodać z powrotem w funkcji zmiany rozmiaru formularza lub przenoszenia formularza, chwytając Pasek napisów. Nie wspominając o menu systemowym w rogu.
W większości przypadków trudno jest uzasadnić, że przycisk "zamknij" nie jest dostępny, zwłaszcza gdy chcesz forma modalna z możliwością minimalizacji. Minimalizacja formy modalnej naprawdę nie ma sensu.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-09-04 20:34:09
Możesz ukryć zamknij okno za pomocą
this.ControlBox = false;
I nie zapomnij dodać spacji do this.Text = " "
, aby zrobić to tak
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-05-31 07:31:10
We właściwościach formularza Ustaw 'Control Box' = False, ale to ukryje zminimalizowane i zmaksymalizowane.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-27 01:23:45
Cóż, możesz ukryć przycisk zamknięcia, zmieniając FormBorderStyle z sekcji Właściwości lub programowo w konstruktorze za pomocą:
public Form1()
{
InitializeComponent();
this.FormBorderStyle = FormBorderStyle.None;
}
Następnie tworzysz pasek menu, aby zamknąć aplikację.
Cheers
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-09-27 12:49:29
Jeśli jest to opcja możesz ustawić
this.FormBorderStyle = FormBorderStyle.None;
Następnie odtworzyć przyciski Minimalizuj i Maksymalizuj
private void button1_Click(object sender, EventArgs e)
{
this.WindowState = FormWindowState.Maximized;
}
private void button2_Click(object sender, EventArgs e)
{
this.WindowState = FormWindowState.Minimized;
}
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-02-22 01:15:57