社区
C#
帖子详情
重写控件的鼠标响应后ContextMenu无法显示的问题
broadury
2004-07-04 11:12:02
我写一个PictureBox的MouseMove和MouseLeave事件后,右击鼠标想显示ContextMenu,结果是一闪而过,无法显示。这该如何解决?
...全文
176
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程序,当你在TextBox上点击
鼠标
右键时,就会弹出预设的右键菜单,选择“红色”或“蓝色”即可改变TextBox的背景色。 总结一下,这个过程主要涉及了以下VB6.0知识点: 1.
控件
的添加与属性...
c#
重写
TabControl
控件
实现关闭按钮的方法
`OnDrawItem`方法是关键,它
重写
了
控件
的绘制事件,用于绘制带有关闭按钮的标签页,并根据选中状态改变背景颜色。此外,还提供了`CloseTab`方法来处理关闭特定标签页的逻辑,以及`OnMouseClick`、`OnMouseEnter`和`...
WPF
控件
样式和模板手册
### WPF
控件
样式和模板手册 #### 概述 WPF(Windows Presentation Foundation)是Microsoft提供的一种用于构建Windows客户端应用程序的技术框架。它允许开发者利用XAML和C#(或其他.NET语言)创建丰富的用户界面。...
Qt实现
鼠标
右击弹出菜单.zip
为需要
响应
右键点击的
控件
(如`QWidget`、`QGraphicsView`等)安装事件过滤器,或者
重写
`mousePressEvent`事件。 ```cpp void MyClass::mousePressEvent(QMouseEvent *event) { if (event->button() == Qt::Right...
C#做托盘程序(NotifyIcon
控件
)
在C#中创建托盘程序,通常涉及到使用`NotifyIcon`
控件
,这是一个非常实用的功能,使得应用程序可以在系统托盘区域
显示
图标并提供菜单功能,从而减少对桌面空间的占用。`NotifyIcon`
控件
是.NET框架WinForms库的一部分...
C#
111,094
社区成员
642,554
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章