社区
C#
帖子详情
重写控件的鼠标响应后ContextMenu无法显示的问题
broadury
2004-07-04 11:12:02
我写一个PictureBox的MouseMove和MouseLeave事件后,右击鼠标想显示ContextMenu,结果是一闪而过,无法显示。这该如何解决?
...全文
169
3
打赏
收藏
重写控件的鼠标响应后ContextMenu无法显示的问题
我写一个PictureBox的MouseMove和MouseLeave事件后,右击鼠标想显示ContextMenu,结果是一闪而过,无法显示。这该如何解决?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
lookie
2005-01-22
打赏
举报
回复
应该没有问题
broadury
2004-07-05
打赏
举报
回复
PanelIcon是一个继承PictureBox的类,编译成用户控件,在Windows应用程序中调用,并指定了ContextMenu,但是完成鼠标响应的代码后菜单就出不来了:
public class PanelIcon : PictureBox
{
public int index;
public IconPanel iconPanel;
public uint ID;
private Color bckgColor;
private bool mouseEnter;
public int Index
{
get
{
return index;
}
}
public PanelIcon(IconPanel parent, Image image, int index, EventHandler onDoubleClickEvent)
{
this.index=index;
this.iconPanel=parent;
Image=image;
Visible=true;
Location=new Point(iconPanel.outlookBar.Size.Width/2-image.Size.Width/2,
iconPanel.Margin + index*iconPanel.IconSpacing);
Size=image.Size;
DoubleClick+=onDoubleClickEvent;
Tag=this;
MouseEnter+=new EventHandler(OnMouseEnter);
DoubleClick+=new EventHandler(onDoubleClickEvent);
MouseLeave+=new EventHandler(OnMouseLeave);
MouseMove+=new MouseEventHandler(OnMouseMove);
MouseDown+=new MouseEventHandler(OnMouseDown);
MouseUp+=new MouseEventHandler(OnMouseUp);
bckgColor=iconPanel.BackColor;
mouseEnter=false;
}
private void OnMouseMove(object sender, MouseEventArgs args)
{
if ( (args.X < Size.Width-2) &&
(args.Y < Size.Width-2) &&
(!mouseEnter) )
{
BackColor=Color.LightCyan;
BorderStyle=BorderStyle.FixedSingle;
Location=Location-new Size(1, 1);
mouseEnter=true;
}
}
private void OnMouseLeave(object sender, EventArgs e)
{
if (mouseEnter)
{
BackColor=bckgColor;
BorderStyle=BorderStyle.None;
Location=Location+new Size(1, 1);
mouseEnter=false;
}
}
private void OnMouseDown(object sender, MouseEventArgs args)
{
if ( (args.X < Size.Width-2) &&
(args.Y < Size.Width-2) &&
(!mouseEnter) )
{
BackColor=Color.LightCyan;
BorderStyle=BorderStyle.Fixed3D;
Location=Location+new Size(1, 1);
}
}
private void OnMouseUp(object sender, MouseEventArgs args)
{
if ( (args.X < Size.Width-2) &&
(args.Y < Size.Width-2) &&
(!mouseEnter) )
{
BackColor=Color.LightCyan;
BorderStyle=BorderStyle.None;
Location=Location-new Size(1, 1);
}
}
private void OnMouseEnter(object sender, EventArgs e)
{
}
private void OnMouseClick(object sender, EventArgs e)
{
}
}
songbird
2004-07-05
打赏
举报
回复
代码贴出来看看
Android之上下文菜单
ContextMenu
Android中的上下文菜单,长按可以弹出的知识点
Qt
鼠标
点击不
响应
QMouseEvent事件的解决办法
最近在写程序在和同事合完代码后发现一个
问题
,项目是使用qt开发一个程序,有一个功能是要实现地图的标记功能,我需要在一个label
控件
上
显示
地图,然后再选中标记按钮后点击地图,会在
鼠标
点击的位置放置一个标记的图标并...
WPF基础五:UI④ 条目
控件
ContextMenu
下图
显示
了一个ListBox
控件
,该
控件
包含以下不同类型的项: 一个字符串。 DateTime对象。 UIElement对象。 一个Panel包含Ellipse和的
控件
TextBlock。 包含多种类型对象的 ListBox 使用Items或ItemsSource属性...
Qt知识笔记(八)——
鼠标
和事件
Qt知识笔记(八)——
鼠标
和事件
MFC添加
鼠标
右键菜单
1)创建MFC项目;...XXX.rc"目录,选择弹出菜单的“添加...4)在对话框的类视图中,选择“属性”-“消息”,
重写
对消息WM_
CONTEXTMENU
的
响应
函数。5)函数体内填写代码如下:void CtestMenuDlg::On
ContextMenu
(CWn...
C#
110,539
社区成员
642,577
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章