右键单击listView中的项时弹出菜单怎么实现 右键单击listView时弹出contextMenu1右键单击listView中的某项时弹出contextMenu2 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 如上所示实际上我想实现的效果就和WindowXP中“我的电脑”一样例如:“我的电脑”空白处单击右键和右键单击硬盘盘符时,右键弹出的contextMenu就不一样请问该如何实现!谢谢 右键单击listView中的某项时弹出contextMenu2,只实现这个没什么问题...第一个似乎有点难了...学习... 树的方法, 供参考:private void treeView1_MouseDown(object sender, System.Windows.Forms.MouseEentArgs e){ if (treeView1.GetNodeAt(e.X, e.Y)==null) treeView1.SelectedNode.Checked=false; if (treeView1.GetNodeAt(e.X, e.Y)!=null) treeView1.SelectedNode=treeView1.GetNodeAt(e.X, e.Y); if ((treeView1.GetNodeAt(e.X, e.Y)!=null && e.Button == MouseButtons.Right && treeView1.SelectedNode.ForeColor==Color.Blue && treeView1.SelectedNode.IsSelected==true) || (treeView1.GetNodeAt(e.X, e.Y)!=null && e.Button == MouseButtons.Right && treeView1.SelectedNode.ForeColor==Color.Green && treeView1.SelectedNode.IsSelected==true)) { treeView1.ContextMenu =this.bdcontextMenufile; treeView1.SelectedNode.Checked=true; } if (treeView1.GetNodeAt(e.X, e.Y)!=null && e.Button == MouseButtons.Right && treeView1.SelectedNode.ForeColor!=Color.Blue && treeView1.SelectedNode.ForeColor!=Color.Green && treeView1.SelectedNode.IsSelected==true) { treeView1.ContextMenu =this.bdcontextMenunode; treeView1.SelectedNode.Checked=true; } //if (treeView1.GetNodeAt(e.X, e.Y)!=null && e.Button == MouseButtons.Right && treeView1.SelectedNode.ForeColor==Color.Green && treeView1.SelectedNode.IsSelected==true) //{ // treeView1.ContextMenu =this.tzxgtzdmenu; // treeView1.SelectedNode.Checked=true; //} } private void treeView1_MouseUp(object sender, System.Windows.Forms.MouseEventArgs e) { // If the right mouse button was clicked and released, // display the context menu assigned to the TreeView. if(e.Button == MouseButtons.Right && treeView1.SelectedNode.ForeColor!=Color.Blue && treeView1.SelectedNode.Checked!=false && treeView1.SelectedNode.IsSelected==true ) { //treeView1.ContextMenu =this.bdcontextMenunode; treeView1.ContextMenu.Show(treeView1, new Point(e.X, e.Y) ); } if(e.Button == MouseButtons.Right && treeView1.SelectedNode.ForeColor==Color.Blue && treeView1.SelectedNode.Checked!=false && treeView1.SelectedNode.IsSelected==true) { treeView1.ContextMenu.Show(treeView1, new Point(e.X, e.Y) ); } if(e.Button == MouseButtons.Right && treeView1.SelectedNode.ForeColor==Color.Green && treeView1.SelectedNode.Checked!=false && treeView1.SelectedNode.IsSelected==true) { treeView1.ContextMenu.Show(treeView1, new Point(e.X, e.Y) ); } } 先判断listView.SelectedItems 是否为空在MouseClick事件中 先判断 e.Button是否等于MouseButtons.Right等于的话 显示contextMenu2 private void v_View_MouseClick(object sender, MouseEventArgs e) { if (e.Button == MouseButtons.Right) { this.v_contextMenu.Show( Cursor .Position.X+10 ,Cursor .Position .Y+10 ); } } private void v_View_MouseDown(object sender, MouseEventArgs e) { if (e.Button == MouseButtons.Right && e .Clicks==2) { this.F_contextMenu.Show(Cursor.Position.X + 10, Cursor.Position.Y + 10); } } 第三方库dll的同名xml有什么用? 请问如何把两个控件插入到同StackPanel的同一行中? 如何在while循环中响应事件 datetimepicker控件焦点问题 帮忙写一个类文件 c#里如何声明inline函数 电子签名的制作!请教,分另加! 如果web应用程序包含sqlserver数据库,怎么发布? 如何替代windows开始菜单 前台代码中函数(yhw_list(); )在详细内容在什么地方,它后台文件删除了都可以用 listview怎样设置某列为checkbox 如何获取listview中被选中的行??
实际上我想实现的效果就和WindowXP中“我的电脑”一样
例如:“我的电脑”空白处单击右键和右键单击硬盘盘符时,右键弹出的contextMenu就不一样请问该如何实现!
谢谢
private void treeView1_MouseDown(object sender, System.Windows.Forms.MouseEentArgs e)
{
if (treeView1.GetNodeAt(e.X, e.Y)==null)
treeView1.SelectedNode.Checked=false;
if (treeView1.GetNodeAt(e.X, e.Y)!=null)
treeView1.SelectedNode=treeView1.GetNodeAt(e.X, e.Y);
if ((treeView1.GetNodeAt(e.X, e.Y)!=null && e.Button == MouseButtons.Right && treeView1.SelectedNode.ForeColor==Color.Blue && treeView1.SelectedNode.IsSelected==true) || (treeView1.GetNodeAt(e.X, e.Y)!=null && e.Button == MouseButtons.Right && treeView1.SelectedNode.ForeColor==Color.Green && treeView1.SelectedNode.IsSelected==true))
{
treeView1.ContextMenu =this.bdcontextMenufile;
treeView1.SelectedNode.Checked=true; }
if (treeView1.GetNodeAt(e.X, e.Y)!=null && e.Button == MouseButtons.Right && treeView1.SelectedNode.ForeColor!=Color.Blue && treeView1.SelectedNode.ForeColor!=Color.Green && treeView1.SelectedNode.IsSelected==true)
{
treeView1.ContextMenu =this.bdcontextMenunode;
treeView1.SelectedNode.Checked=true; }
//if (treeView1.GetNodeAt(e.X, e.Y)!=null && e.Button == MouseButtons.Right && treeView1.SelectedNode.ForeColor==Color.Green && treeView1.SelectedNode.IsSelected==true)
//{
// treeView1.ContextMenu =this.tzxgtzdmenu;
// treeView1.SelectedNode.Checked=true; //}
} private void treeView1_MouseUp(object sender, System.Windows.Forms.MouseEventArgs e)
{
// If the right mouse button was clicked and released,
// display the context menu assigned to the TreeView.
if(e.Button == MouseButtons.Right && treeView1.SelectedNode.ForeColor!=Color.Blue && treeView1.SelectedNode.Checked!=false && treeView1.SelectedNode.IsSelected==true )
{ //treeView1.ContextMenu =this.bdcontextMenunode;
treeView1.ContextMenu.Show(treeView1, new Point(e.X, e.Y) );
}
if(e.Button == MouseButtons.Right && treeView1.SelectedNode.ForeColor==Color.Blue && treeView1.SelectedNode.Checked!=false && treeView1.SelectedNode.IsSelected==true)
{
treeView1.ContextMenu.Show(treeView1, new Point(e.X, e.Y) );
}
if(e.Button == MouseButtons.Right && treeView1.SelectedNode.ForeColor==Color.Green && treeView1.SelectedNode.Checked!=false && treeView1.SelectedNode.IsSelected==true)
{
treeView1.ContextMenu.Show(treeView1, new Point(e.X, e.Y) );
}
}
等于的话 显示contextMenu2
{
if (e.Button == MouseButtons.Right)
{
this.v_contextMenu.Show( Cursor .Position.X+10 ,Cursor .Position .Y+10 );
}
} private void v_View_MouseDown(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Right && e .Clicks==2)
{
this.F_contextMenu.Show(Cursor.Position.X + 10, Cursor.Position.Y + 10);
}
}