目的是在窗体失去焦点时触发不透明度事件.表单有一个STAY ON TOP的设置.视觉效果是点击一个可能重叠的窗口,然而未聚焦的形式将保持在顶部,但在角落稍微透明,使其易于访问,但提供对下面的东西的可见性.
我用Google搜索并用谷歌搜索,并且无法弄清楚当表格失去焦点时如何让这个事件正确点火,然后当表格获得焦点时,将不透明度恢复到100%或其他地方确定的等级.
提示?
// under designer.cs
//
// CollectionToolForm
//
//other code....
this.LostFocus += new System.EventHandler(goTransparent);
//method
private void goTransparent(object sender, EventArgs e)
{
if (transparentCheck.Checked == true)
{
this.Opacity = 0.50;
}
else
{
this.Opacity = 1;
}
}
Run Code Online (Sandbox Code Playgroud)
听起来好像你正在寻找Activated和Deactivate事件.
更新
在回应关于LostFocus事件的评论时,可能有必要澄清它是如何工作的.继承自的LostFocus事件.当控件失去焦点时会引发它; 或者因为这样的表单被停用(例如焦点移动到另一个应用程序),或者因为焦点移动到同一表单中的另一个控件.FormControl
如果为LostFocus只包含至少一个可以获得焦点的控件的表单事件挂钩事件处理程序,您会发现在显示表单后立即LostFocus引发表单事件.这是因为焦点从表单(即a )移动到表单上的第一个可聚焦控件.Control
因此,活跃的形式和聚焦的形式是两个独立的行为.
| 归档时间: |
|
| 查看次数: |
6255 次 |
| 最近记录: |