2

是否可以确定鼠标光标是否正在离开自定义模式 Winforms 对话框(鼠标光标正在进入对话框周围的空间)?该对话框通过 ShowDialog() 显示。Mouse_Leave 不起作用,因为它在离开表单的可见部分时触发。因此,当在表单上输入控件时它也会触发!

4

2 回答 2

3

如果表单具有停靠填充客户区的面板,则表单的 MouseLeave 事件不会总是触发,因此 Timer 是一种相当可靠的检查方法:

System.Windows.Forms.Timer timer = new System.Windows.Forms.Timer();

public Form1() {
  InitializeComponent();
  timer.Tick += timer_Tick;
  timer.Enabled = true;
}

void timer_Tick(object sender, EventArgs e) {
  if (this.Bounds.Contains(MousePosition)) {
    this.Text = "Inside";
  } else {
    this.Text = "Outside";
  }
}
于 2013-10-15T12:59:54.217 回答
0

WinForm 对话框是 Form 所以答案是肯定的。您需要连接适当的事件来注册离开和进入对话框,就像在任何表单上一样。

于 2013-10-15T12:51:07.967 回答