///////////////////////// Form1 ///////////////////////////////////// using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace WindowsFormsApplication1 { public partial class Form1 : Form { public Form1() { InitializeComponent(); contextMenuStrip_Rooms = build_contextMenuStrip_Rooms(); contextMenuStrip_Room = build_contextMenuStrip_Room(); contextMenuStrip_computer = build_contextMenuStrip_computer(); } //testing 显示 返回 form2 textbox 的内容 public string ss = null; public void test() { MessageBox.Show(ss); } private void treeView1_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e) { if (e.Button == MouseButtons.Right) { this.treeView1.SelectedNode = e.Node; TreeNode currentNode = this.treeView1.SelectedNode; //root node if (currentNode.Name == "Rooms") { currentNode.ContextMenuStrip = contextMenuStrip_Rooms; } // second level node else if (currentNode.Name.Contains("Room") && currentNode.Name != "Room") { currentNode.ContextMenuStrip = contextMenuStrip_Room; } //third level node else // node computer { currentNode.ContextMenuStrip = contextMenuStrip_computer; } } } // comtextMenuStrip for three different node #region // comtextMenuStrip for Root node (Rooms) private ContextMenuStrip contextMenuStrip_Rooms; public ContextMenuStrip build_contextMenuStrip_Rooms() { ContextMenuStrip cms = new ContextMenuStrip(); // add room item ToolStripItem item1 = new ToolStripMenuItem(); item1.Name = "Add room"; item1.Text = "Add room"; item1.Size = new System.Drawing.Size(152, 22); item1.MouseUp += new System.Windows.Forms.MouseEventHandler(contextMenuStrip_Rooms_addRoomClick); cms.Items.Add(item1); // properties item ToolStripItem item2 = new ToolStripMenuItem(); item2.Name = "Properties"; item2.Text = "Properties"; item2.Size = new System.Drawing.Size(152, 22); item2.MouseUp += new MouseEventHandler(contextMenuStrip_Rooms_propertyClick); cms.Items.Add(item2); return cms; } private void contextMenuStrip_Rooms_addRoomClick(object sender, MouseEventArgs e) { if (e.Button == MouseButtons.Left) { MessageBox.Show(treeView1.SelectedNode.Name + " add room clicked ;"); //invoke form2 //Form2 f2 = new Form2(this); //f2.ShowDialog(this); } } private void contextMenuStrip_Rooms_propertyClick(object sender, MouseEventArgs e) { if (e.Button == MouseButtons.Left) { MessageBox.Show(treeView1.SelectedNode.Name + " property clicked"); } } #endregion #region private ContextMenuStrip contextMenuStrip_Room; public ContextMenuStrip build_contextMenuStrip_Room() { ContextMenuStrip cms = new ContextMenuStrip(); ToolStripItem item1 = new ToolStripMenuItem(); item1.Name = "Add Computer"; item1.Text = "Add Computer"; item1.Size = new System.Drawing.Size(152, 22); item1.MouseUp += new System.Windows.Forms.MouseEventHandler(contextMenuStrip_Room_addComputerClick); cms.Items.Add(item1); ToolStripItem item2 = new ToolStripMenuItem(); item2.Name = "Delete"; item2.Text = "Delete"; item2.Size = new System.Drawing.Size(152, 22); item2.MouseUp += new System.Windows.Forms.MouseEventHandler(contextMenuStrip_Room_DeleteClick); cms.Items.Add(item2); ToolStripItem item3 = new ToolStripMenuItem(); item3.Name = "Properties"; item3.Text = "Properties"; item3.Size = new System.Drawing.Size(152, 22); item3.MouseUp += new System.Windows.Forms.MouseEventHandler(contextMenuStrip_Room_PropertyClick); cms.Items.Add(item3); return cms; } private void contextMenuStrip_Room_addComputerClick(object sender, MouseEventArgs e) { if (e.Button == MouseButtons.Left) { MessageBox.Show(treeView1.SelectedNode.Name + " addComputer clicked"); } } private void contextMenuStrip_Room_DeleteClick(object sender, MouseEventArgs e) { if (e.Button == MouseButtons.Left) { MessageBox.Show(treeView1.SelectedNode.Name + " delete clicked"); } } private void contextMenuStrip_Room_PropertyClick(object sender, MouseEventArgs e) { if (e.Button == MouseButtons.Left) { MessageBox.Show(treeView1.SelectedNode.Name + " property clicked"); } } #endregion #region private ContextMenuStrip contextMenuStrip_computer; public ContextMenuStrip build_contextMenuStrip_computer() { ContextMenuStrip cms = new ContextMenuStrip(); ToolStripItem item1 = new ToolStripMenuItem(); item1.Name = "Delete"; item1.Text = "Delete"; item1.Size = new System.Drawing.Size(152, 22); item1.MouseUp += new System.Windows.Forms.MouseEventHandler(contextMenuStrip_Computer_DeleteClick); cms.Items.Add(item1); ToolStripItem item2 = new ToolStripMenuItem(); item2.Name = "Properties"; item2.Text = "Properties"; item2.Size = new System.Drawing.Size(152, 22); item2.MouseUp += new System.Windows.Forms.MouseEventHandler(contextMenuStrip_Computer_PropertyClick); cms.Items.Add(item2); return cms; } private void contextMenuStrip_Computer_DeleteClick(object sender, MouseEventArgs e) { if (e.Button == MouseButtons.Left) { MessageBox.Show(treeView1.SelectedNode.Name + " delete clicked"); } } private void contextMenuStrip_Computer_PropertyClick(object sender, MouseEventArgs e) { if (e.Button == MouseButtons.Left) { MessageBox.Show(treeView1.SelectedNode.Name + " property clicked"); } } #endregion } } ///////////////////////////////form2 ///////////////////////////// public partial class Form2 : Form { public Form2() { InitializeComponent(); } private Form1 form1; public Form2(Form1 f1) : this() { form1 = f1; } private void button1_Click(object sender, EventArgs e) { form1.ss = textBox1.Text; this.Close(); //this.form1.Show(); form1.test(); } }