Je suis très nouveau à C # et j'essaie toujours de me lever la tête (avec l'aide de quelques amis très patients). P>
J'ai un problème avec la définition d'un nouveau formulaire Windows Les deux formes ont le J'ai recherché une réponse à ce problème et j'ai trouvé une réponse qui a suggéré de mettre en place La seule chose que j'ai changée, ce qui peut avoir eu un effet est que Form1 a été créé avec .NET 4.5 définie dans les propriétés et avant de créer le formulaire2, j'ai changé cela en .NET 3.5 (profil client). J'ai essayé de le changer, mais cela n'a pas aidé. Avant de supprimer et de créer un formulaire2 à nouveau, quelqu'un a-t-il des idées? P>
Merci d'avance.
(Si vous avez besoin de plus d'informations, merci de me le faire savoir) p> Haut maximum code> propriété sur true code>. J'ai deux formes (presque) identiques; 1 qui fonctionne bien et un qui ne le fait pas. P>
le plus haut code> Configuration de la propriété sur true code>. p>
this.toply = true; code> dans l'événement de charge du formulaire, mais cela n'a pas fonctionné. P>
6 Réponses :
Cela peut vous aider;
frm.TopLevel = true; frm.TopMost = true;
Travaillé pour moi! Cela aide en cas de forme principale (formulaire de demande)
Le plus haut est un Propriété utilisée pour s'assurer qu'une seule fenêtre est toujours affichée au-dessus de toutes les autres dans une application. Exemple Microsofts était un outil de recherche et de remplacement. P>
La différence que vous trouvez est que Form1 a été créée comme une boîte de dialogue modale via l'utilisation de showdialog . Afficher la boîte de dialogue S'assure que votre formulaire doit être fermé avant que toutes les autres fenêtres de l'application puissent être utilisées à nouveau. Par exemple; en utilisant un formulaire pour gagner des données utilisateur pour entrer dans une base de données des formulaires parent. p>
montre est utilisé Lorsque vous ne vous dérangeez pas si votre utilisateur a terminé avec leur boîte de dialogue ou non, ce qui permet de permettre à votre utilisateur la possibilité d'utiliser certains utilitaires (par exemple, la minuterie, le chronomètre) qui aidera dans la fonction principale d'un programme. P>
La seule différence visuelle que je puisse penser lorsque vous utilisez différents .NET Frameworks, est différente de dialogues Windows tels que OpenFileDialog, qui ont été mises à jour dans le cadre P>
Soyez prudent avec l'utilisation du maximum pour une forme maximale: toute boîte de dialogue modale pouvant être affichée car les enfants de ce formulaire resteront cachés à l'arrière-plan!
Ce lien de Microsoft Confirmez que cela pourrait être un bogue dans Windows 7 et Windows Server 2008 R2, je suis confronté à celui-ci dans un système embarqué Windows 7 et le correctif fourni le problème, s'il vous plaît considérer pour jeter un coup d'œil :) p>
http://support.microsoft.com/kb/2587473/en-us < / a> p>
J'espère que cela aide! P>
Le bricolage de le faire - fonctionne 100%!
public static class User32
{
public const int SW_HIDE = 0;
public const int SW_SHOW = 5;
public const int SW_SHOWNORMAL = 1;
public const int SW_SHOWMAXIMIZED = 3;
public const int SW_RESTORE = 9;
[DllImport("user32.dll")]
public static extern bool SetForegroundWindow(IntPtr hWnd);
[DllImport("user32.dll")]
public static extern bool AllowSetForegroundWindow(uint dwProcessId);
[DllImport("user32.dll")]
public static extern bool ShowWindow(IntPtr hWnd, int nCmdShow);
}
User32.AllowSetForegroundWindow((uint)Process.GetCurrentProcess().Id);
User32.SetForegroundWindow(Handle);
User32.ShowWindow(Handle, User32.SW_SHOWNORMAL);
Je chapeau un problème similaire dans ma solution. Après avoir utilisé la fonction de spectacle surchargé, il a fonctionné:
frm.TopLevel = true; frm.TopMost = true; frm.Show(this)
Ajoutez le code suivant dans l'événement montré strong>:
Pourriez-vous poster le code?
Oui bien sûr. D'où? Désolé si cela semble stupide!
Form1 a été ouvert avec ShowDialog et Form2 a été ouverte avec spectacle, rien à voir avec le maximum. En d'autres termes, Form1 est modal
N'oubliez pas qu'un signe unique est un signe pour des missions, le signe double équivalent est l'opérateur d'égalité. Assurez-vous d'utiliser le bon!