Je souhaite créer un menu contextuel à l’aide de C # qui s’affichera à côté du nœud, comme dans Visual Studio:
Le code que j’ai maintenant provoque le scintillement du formulaire principal.
private void treeView1_MouseDown(object sender, MouseEventArgs e) { if (e.Button == MouseButtons.Right) { var myForm = new Form {Text = "My Form"}; myForm.SetBounds(10, 10, 200, 200); myForm.Show(); // Determine if the form is modal. if (myForm.Modal == false) { // Change borderstyle and make it not a top level window. myForm.FormBorderStyle = FormBorderStyle.FixedToolWindow; myForm.TopLevel = false; } } }
Pourquoi ne pas simplement utiliser Form.ShowDialog
?
De MSDN :
Méthode Form.ShowDialog
Affiche le formulaire sous forme de boîte de dialog modale.
Vous devez configurer treeView1.ContextMenu
au lieu de l’approche que vous prenez.
Vous devriez lire et essayer le contrôle ContextMenu
de c #. Je pense que cela résoudra votre problème plutôt que la technique que vous avez utilisée ….. Ou autrement que d’utiliser myform.showdialog();
avec les méthodes setbounds()
.