如题,控件是button,希望左键的时候发生X事件,右键的时候发生y事件,我在MouseClick事件里面写的如下代码 private void btn1_Click(object sender, MouseEventArgs e)
{
Button btn = (Button)sender;
if (e.Button == MouseButtons.Left && e.Clicks == 1)
{
btn0009.Image = ilLeftClick.Images[0];
}
if (e.Button == MouseButtons.Right && e.Clicks == 1)
{
btn0009.Image = liRightClick.Images[1];
}
} //按钮事件左键的事情倒是发生了,但是右键的事件就是不响应,这是为什么呢,,求指点个人感觉代码应该对的,但是我在鼠标右键点中那个button的时候button控件并不会像左键点上去会发生一点效果,我感觉似乎button控件没有响应到鼠标右键的事件。。
{
Button btn = (Button)sender;
if (e.Button == MouseButtons.Left && e.Clicks == 1)
{
btn0009.Image = ilLeftClick.Images[0];
}
if (e.Button == MouseButtons.Right && e.Clicks == 1)
{
btn0009.Image = liRightClick.Images[1];
}
} //按钮事件左键的事情倒是发生了,但是右键的事件就是不响应,这是为什么呢,,求指点个人感觉代码应该对的,但是我在鼠标右键点中那个button的时候button控件并不会像左键点上去会发生一点效果,我感觉似乎button控件没有响应到鼠标右键的事件。。
// 用 MouseUp 代替
private void button1_MouseUp(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Right &&
button1.ClientRectangle.Contains(e.Location))
{
MessageBox.Show("Test");
}
}
// 第二个 Contains 判断 MouseUp 的时候,鼠标是不是在 Button 上面。
不要想当然!Try it before asserting.
亲手去试试就知道了,Button 和 Panel 等其他控件不一样,这一点,它比较特别。