问题...为什么这段代码只生成一个消息框“Down”?我没有得到Up。如果我阻止代码,up up工作。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace Mouse
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_MouseUp(object sender, MouseEventArgs e)
{
MessageBox.Show("Up");
}
private void Form1_MouseDown(object sender, MouseEventArgs e)
{
MessageBox.Show("Down");
}
}
}
答案 0 :(得分:2)
因为您正在展示MessageBox
每当发生鼠标按下事件时,都会弹出MessageBox
。 MessageBox
将位于前台,而up事件将位于MessageBox
而不是表单上。因此,表单中的up事件不会触发
只需执行Console.WriteLine
而不是MessageBox
,它应该按预期工作
答案 1 :(得分:0)
如果删除消息框调用,它们都将触发。这是对鼠标事件的干扰,因为你失去了对表单的关注。而不是使用消息框尝试使用...
Console.WriteLine("MouseUp");
这将显示在输出窗口中,不会干扰事件