comment faire un Formulaire Windows s'affichent toujours sur le dessus?
Je suis à l'aide de VSTS 2008 + C# + .Net 2.0 pour développer une application Windows Forms. Dans Form1 par défaut j'ai un bouton, puis cliquez sur le bouton pour appeler une autre Forme -- Form2.
Ma question est, je veux faire de la Form2 toujours sur le dessus, c'est à dire l'utilisateur doit réponse Form2 (remplir les détails dans Form2 et de la fermer) jusqu'à ce que l'utilisateur puisse continuer à faire face à Form1. Comment mettre en œuvre cette fonctionnalité?
Voici mon code actuel.
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
Form2 form2 = new Form2();
form2.Visible = true;
}
}
OriginalL'auteur George2 | 2009-07-18
Vous devez vous connecter pour publier un commentaire.
La meilleure option pour faire exactement ce que vous voulez est de faire de la form2 une boîte de dialogue. Vous faites cela en appelant sa
méthode.
Merci Alex, ta solution fonctionne!
l'une de mes applications ouvertes, mais sous d'autres fenêtres (cacher derrière les autres) si nous avons plateau de l'application et que vous voulez être-dessus des autres fenêtres en cliquant sur l'icône de barre d'état ou par la touche de raccourci ... avez-vous pensé à @Mihail 's réponse est mieux? ou je tombe dans l'erreur?
OriginalL'auteur Alex McBride
essayer cette
La meilleure solution pour une application(plusieurs formes) est la méthode ShowDialog.
OriginalL'auteur Michał Ziober
Vous pouvez utiliser le Win32 ::SetWindowPos() la méthode et la valeur HWND hWndInsertAfter à HWND_TOPMOST de sorte qu'il reste sur le dessus.
Regardez ici pour le SetWindowPos de la documentation:
http://msdn.microsoft.com/en-us/library/ms633545(SV.85).aspx
Voici quelques exemples:
http://www.pinvoke.net/default.aspx/user32/SetWindowPos.html
OriginalL'auteur Oliver
En supposant que vous voulez éviter à l'utilisateur d'interagir avec Form1 jusqu'à ce qu'ils sont finis avec Form2, vous voulez le
ShowDialog()
méthode.OriginalL'auteur Bevan
Avec les parents .NET il y a pas moyen de mettre une forme sur le dessus et maintenez-le.
Forme.Supérieur de tous les ensembles de la forme sur le dessus que sur créer.
Forme.ShowDialog() définit le formulaire en haut de toutes les formes de la demande, mais peut ensuite être projetée vers l'arrière derrière d'autres applications.
Je me souviens que nous avons utilisé certains P/Invoke-les Appels à Win32 natif pour gérer ce cas, mais ne me souviens pas de ce qui appelle exactement. De toute façon 100% n'ont jamais été atteint, diffusée sur pour Win2000 WinXP rien n'a fonctionné partout.
OriginalL'auteur Oliver Friedrich