c#,怎么实现右击空白处时,不显示右键菜单?
在一个treeview中,右键空白处也会显示右键菜单。我想要的是只有选中treeviewList中的节点时才会显示右键菜单,要怎么做?请详细一点!谢谢!...
在一个treeview中,右键空白处也会显示右键菜单。我想要的是只有选中treeviewList中的节点时才会显示右键菜单,要怎么做?请详细一点!谢谢!
展开
展开全部
可以通过鼠标点击的位置,判断点击的区域,判断是否弹出右键菜单,以下是我测试代码,希望对你有所帮助,重写TreeView的WndProc函数
public class MyTreeView : TreeView
{
private const int WM_RBUTTONDOWN = 0x0204;
protected override void WndProc(ref Message m)
{
if (m.Msg == WM_RBUTTONDOWN)
{
int nX = (int)m.LParam & 0xFFFF;//取得鼠标点击的X坐标
int nY = (int)m.LParam >> 16 & 0xFFFF;//取得鼠标点击的Y坐标
//判断是否点击在Node上面
if (HitTest(nX, nY).Location != TreeViewHitTestLocations.Label)
{
return;
}
}
base.WndProc(ref m);
}
}
public class MyTreeView : TreeView
{
private const int WM_RBUTTONDOWN = 0x0204;
protected override void WndProc(ref Message m)
{
if (m.Msg == WM_RBUTTONDOWN)
{
int nX = (int)m.LParam & 0xFFFF;//取得鼠标点击的X坐标
int nY = (int)m.LParam >> 16 & 0xFFFF;//取得鼠标点击的Y坐标
//判断是否点击在Node上面
if (HitTest(nX, nY).Location != TreeViewHitTestLocations.Label)
{
return;
}
}
base.WndProc(ref m);
}
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你判断一下有没有选中就行了嘛
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询