J'ai un winform avec les boutons minimizeMaximizeClose désactivés, mais toujours si quelqu'un appuie dessus dans la barre des tâches, il minimisera. Je veux empêcher cela.Annuler Un WinForm Réduire?
Comment puis-je accomplir ceci?
J'ai un winform avec les boutons minimizeMaximizeClose désactivés, mais toujours si quelqu'un appuie dessus dans la barre des tâches, il minimisera. Je veux empêcher cela.Annuler Un WinForm Réduire?
Comment puis-je accomplir ceci?
Vous pourriez probablement attraper les changer en cas SizeChanged et vérifiez la WindowState, si elle été réglée sur Minimized puis réglez-retour Normal. Pas la solution la plus élégante mais devrait fonctionner.
par ex.
private void myForm_SizeChanged(object sender, System.EventArgs e)
{
if (myForm.WindowState == FormWindowState.Minimized)
{
myForm.WindowState = FormWindowState.Normal;
}
}
S'il est approprié pour vous, cacher la barre des tâches: ShowInTaskbar=false
Override WndProc sur votre formulaire, pour écouter les messages et minimiser les annuler.
Ajouter ce code à votre formulaire:
private const int WM_SYSCOMMAND = 0x0112;
private const int SC_MINIMIZE = 0xf020;
protected override void WndProc(ref Message m)
{
if (m.Msg == WM_SYSCOMMAND)
{
if (m.WParam.ToInt32() == SC_MINIMIZE)
{
m.Result = IntPtr.Zero;
return;
}
}
base.WndProc(ref m);
}
I modifié le code de Rob trouvé dans ce SO fil:
How to disable the minimize button in C#?
Fonctionne très bien: pas vacillante, rien lorsque les tentatives de l'utilisateur à minimiser.
+1, c'est la bonne façon de le faire –
Cela devrait être la réponse. –
vous pouvez simplement supprimer le bouton de réduction de la fenêtre:
ajoutez le code ci-dessous pour la méthode InitializeComponent() private void de la classe Form:
this.MinimizeBox = false;
Cela devrait également fonctionner, mais depuis la l'événement est déclenché après que la fenêtre a été réduite, il est légèrement possible qu'un effet de scintillement apparaisse. –
@Adrian: ouais je pensais juste que, cela dépend de ce qui est sur le formulaire et combien redessiner aurait besoin d'avoir lieu. – w69rdy