社区
C#
帖子详情
重写控件的鼠标响应后ContextMenu无法显示的问题
broadury
2004-07-04 11:12:02
我写一个PictureBox的MouseMove和MouseLeave事件后,右击鼠标想显示ContextMenu,结果是一闪而过,无法显示。这该如何解决?
...全文
177
3
打赏
收藏
重写控件的鼠标响应后ContextMenu无法显示的问题
我写一个PictureBox的MouseMove和MouseLeave事件后,右击鼠标想显示ContextMenu,结果是一闪而过,无法显示。这该如何解决?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用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
打赏
举报
回复
代码贴出来看看
怎样使用右键菜单VB6.0源程序
怎样使用右键菜单VB6.0源程序 弹出
鼠标
右键菜单,在文本框中点击
鼠标
右键, 你会发现弹出了右键菜单,选择"红色"即可改变背景色为红色, 选择"兰色"即可改变背景色为兰色。
c#
重写
TabControl
控件
实现关闭按钮的方法
是关于c#
重写
TabControl
控件
实现关闭按钮的例子,整理了一下,与大家分享。
WPF
控件
样式和模板手册
WPF
控件
样式模板查询手册
Qt实现
鼠标
右击弹出菜单.zip
Qt实现
鼠标
右击弹出菜单.zip
C#做托盘程序(NotifyIcon
控件
)
托盘程序具有直观、占用屏幕空间较小并且可以为它定义多个功能菜单,这就给操作者带来了方便,所以越来越多的程序设计者都把程序设计成托盘这种方式. 微软公司极力推荐的下一代程序开发语言--Visual C#来说,却可以十分方便设计出一个托盘程序。本文就是介绍Visual C#设计托盘程序的具体过程。
C#
111,095
社区成员
642,554
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章