如何判断控件是否可视化?

时间:2011-09-13 15:14:57

标签: winforms .net-4.0

是否有一个属性(在WinForms中)允许我判断特定控件是否在屏幕上可视化(即使是部分)?也就是说,

  • 其Visible属性为true,
  • 它没有被其他窗户覆盖。

2 个答案:

答案 0 :(得分:2)

检查Paint事件是否可能是你最好的选择。

private void myControl_Paint(object sender, PaintEventArgs e)
{
  this.Text = "Painted at " + DateTime.Now.ToString();
}

答案 1 :(得分:2)

在Vista上以及启用Aero后不再可行。 Windows在例如窗口缩略图和Aero Peek中可见,即使它们与其他窗口重叠。依靠Windows要求绘画,不要试图优化它们。如果您有理由重新绘制,请使用Invalidate(),不要直接绘制。