[英]mouse_right click event not working for a panel in winform using c#?
我试图触发Panel
的鼠标右键单击事件并调用一个函数,但未触发。 这是我的代码:
private void viewscreen_MouseClick(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Right)
{
generate_editpanel();
}
}
“ viewscreen”是一个Panel
。 我的设计师代码是:
// viewscreen
//
this.viewscreen.BackColor = System.Drawing.SystemColors.ActiveCaptionText;
this.viewscreen.Location = new System.Drawing.Point(208, 16);
this.viewscreen.Name = "viewscreen";
this.viewscreen.Size = new System.Drawing.Size(370, 289);
this.viewscreen.TabIndex = 0;
this.viewscreen.MouseClick +=
new System.Windows.Forms.MouseEventHandler(this.viewscreen_MouseClick);
谁能帮我?
面板中的视频对象必须覆盖面板的整个区域(对接)。 在这种情况下,不会触发面板事件,因为所有点击都会发生在视频对象上。
但是,如果您仍然希望触发面板事件,则可以修改表单设计器代码,如下所示:
this.pictureBox1.MouseClick += new System.Windows.Forms.MouseEventHandler(this.pictureBox1_MouseClick);
this.pictureBox1.MouseClick += new System.Windows.Forms.MouseEventHandler(this.viewscreen_MouseClick);
在这里,我将PictureBox(pictureBox1)停靠在面板(视屏)中。 现在,您可以在表单代码中进行如下测试:
private void viewscreen_MouseClick(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Right)
{
MessageBox.Show(this, "Right Clicked on Panel");
}
}
private void pictureBox1_MouseClick(object sender, MouseEventArgs e)
{
MessageBox.Show(this, "Picture Clicked");
//this.viewscreen_MouseClick(sender, e);
}
在此处粘贴与此this.viewscreen相关的完整代码....如果该面板上还有其他控件,则这些控件将不允许鼠标单击面板。 最重要的控制事件将触发
代替 ...
private void viewscreen_MouseClick(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Right)
{
generate_editpanel();
}
}
使用这个...
private void viewscreen_MouseDown(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Right)
{
generate_editpanel();
}
}
为我工作
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.