C# 我的Form1上有一个用户控件,但当我添加控件的鼠标事件时,它什么都不做为什么?
我希望当我在控制区域上移动鼠标时,它会显示消息。 我从这里下载了控件dll:C# 我的Form1上有一个用户控件,但当我添加控件的鼠标事件时,它什么都不做为什么?,c#,C#,我希望当我在控制区域上移动鼠标时,它会显示消息。 我从这里下载了控件dll: private void lineGraph1_MouseEnter(object sender, EventArgs e) { MessageBox.Show("test"); } 下载了演示并在那里使用了dll文件。 现在我有了Form1上的控件,然后我在Form1 designer中的控件上做了右键单击鼠标属性事件并双击鼠标输入,但当我将鼠标移动到控件上时
private void lineGraph1_MouseEnter(object sender, EventArgs e)
{
MessageBox.Show("test");
}
下载了演示并在那里使用了dll文件。
现在我有了Form1上的控件,然后我在Form1 designer中的控件上做了右键单击鼠标属性事件并双击鼠标输入,但当我将鼠标移动到控件上时,什么也没有发生
我做错了什么?添加方法本身没有任何作用。您必须将其添加为事件处理程序,例如
http://www.codeproject.com/Articles/274318/Line-Graph-Component-in-Csharp
当您从右上角的“事件”下拉列表中选择MouseEnter事件时,表单编辑器会为您执行此操作。我认为这是因为LineGraph本身有一些控件。 例如,如果将OnMouseCenter事件直接放在PlotArea控件上,它可能会正常工作
lineGraph1.MouseEnter += new EventHandler(lineGraph1_MouseEnter);
你的状态集中吗?您是否有其他鼠标事件处理程序?您是否可以发布将事件处理程序添加到eventis lineGraph1_MouseEnter(连接到控件事件)的代码?Kevin我从设计器中创建了事件,而不是在运行时代码中。我转到Form1设计器,然后单击graphline1控件,然后单击属性和事件,然后单击鼠标输入。@user2065612 in为了拥有事件函数,您需要将其添加为事件处理程序。你在哪里做的?还有,这是WPF还是WinForms?Kwel,这很好,但现在当我将鼠标移到控件上时,我看到messageBox一直没有停止,我看到messageBox单击它,它一次又一次不停地显示出来。我如何修复它,使它只显示一次?Kwel不,这不好,我现在再次检查了事件是激活一次,当鼠标在窗体上,我需要它被激活,只有当鼠标在控件上它自己。一旦弹出显示,你离开了控件。关闭弹出窗口后,如果您的鼠标位于控件上方,您将重新输入它。这就是为什么您会出现这种行为,您可以添加一个MouseLeave事件进行检查。当鼠标悬停在窗体上时,事件是激活一次是什么意思?如果事件位于PlotArea上,则应仅为此控件触发该事件。
public PlotArea()
{
this.SetStyle(ControlStyles.ResizeRedraw, true);
this.SetStyle(ControlStyles.OptimizedDoubleBuffer, true);
this.SetStyle(ControlStyles.AllPaintingInWmPaint, true);
this.SetStyle(ControlStyles.UserPaint, true);
this.MouseEnter += new EventHandler(PlotArea_MouseEnter);
}
void PlotArea_MouseEnter(object sender, EventArgs e)
{
MessageBox.Show("test");
}