c# 右键单击 treeview 控件, 显示菜单 以及 从一个 form 调用 另一个form
2010-11-29 04:14
429 查看
///////////////////////// 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(); } }
相关文章推荐
- C# TreeView树控件,失去焦点仍然高亮显示,右击节点时才弹出右键菜单,空白处右击不弹出菜单
- C#当用户在ritchbox中单击鼠标右键时,弹出一个快捷菜单,单击某一地名,在ritchbox中显示相关信息
- C#在一个form中改变另一个form中控件的内容、C#做登录界面并且密码显示为*
- C# 窗体中一个类中调用另一个窗体的控件或方法
- C# 跨线程调用form控件技巧及byte[]与string型相互转换
- C#.net从一个窗体引用另一个窗体控件的问题
- CHtmlView屏蔽右键菜单、禁止显示I型指针以及禁止选择
- C# ContextMenuStrip 点击右键不显示菜单,只点击左键显示菜单
- C#中Form窗口中的控件不显示
- ASP.NET导航控件TreeView根据登录用户显示不同的菜单
- c#+Winform实现自定义的“复制、粘贴”右键快捷菜单,多个控件共享使用一个右键菜单
- C# 树的不同节点显示不同的右键菜单
- c#+Winform实现自定义的“复制、粘贴”右键快捷菜单,多个控件共享使用一个右键菜单。
- C#TreeView窗体版点击右键弹出菜单+直接修改名称+新建节点
- CHtmlView屏蔽右键菜单、禁止显示I型指针以及禁止选择
- C# winform treeview node添加右键菜单并选中节点
- 调用另一个form显示出来就没有了响应
- C#(Winform)右键菜单的实现以及选中某项后勾选
- 从一个scene跳转到另一个scene的代码以及一些控件代码
- C# treeview右键菜单 设置技巧