Winforms:确定鼠标光标是否离开模态对话框的边界

时间:2013-10-15 12:42:33

标签: c# .net winforms

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

2 个答案:

答案 0 :(得分:3)

如果表单具有停靠填充客户区的面板,Form的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";
  }
}

答案 1 :(得分:0)

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