C# 当窗体失去焦点时,如何触发不透明事件?
目的是在窗体失去焦点时触发不透明事件。表单有一个保持在顶部的设置。视觉效果是点击一个可能重叠的窗口,但当不关注时,窗体将保持在顶部,但在角落中略微透明,使其易于访问,但可以看到下面的内容 我一直在谷歌上搜索,不知道如何在窗体失去焦点,然后窗体重新获得焦点,以将不透明度恢复到100%或其他地方确定的级别时,正确触发此事件 小费C# 当窗体失去焦点时,如何触发不透明事件?,c#,event-handling,C#,Event Handling,目的是在窗体失去焦点时触发不透明事件。表单有一个保持在顶部的设置。视觉效果是点击一个可能重叠的窗口,但当不关注时,窗体将保持在顶部,但在角落中略微透明,使其易于访问,但可以看到下面的内容 我一直在谷歌上搜索,不知道如何在窗体失去焦点,然后窗体重新获得焦点,以将不透明度恢复到100%或其他地方确定的级别时,正确触发此事件 小费 听起来你好像在寻找这些事件 更新 在回应关于LostFocus事件的评论时,有必要澄清它是如何工作的。表单的LostFocus事件继承自控件。当控件失去焦点时,它将被触发;
听起来你好像在寻找这些事件 更新 在回应关于LostFocus事件的评论时,有必要澄清它是如何工作的。
表单
的LostFocus
事件继承自控件
。当控件失去焦点时,它将被触发;可能是因为窗体本身被停用(例如,焦点移动到另一个应用程序),或者是因为焦点移动到同一窗体内的另一个控件
如果为仅包含至少一个可接收焦点的控件的窗体的LostFocus
事件连接事件处理程序,则会发现窗体的LostFocus
事件会在显示窗体后立即引发。这是因为焦点从窗体(它是控件
)移动到窗体上的第一个可聚焦控件
因此,处于活动状态的表单和处于焦点状态的表单是两种不同的行为。您尝试使用鼠标进入/离开事件来执行此操作吗
public Form1()
{
this.MouseEnter += new System.EventHandler(this.Form1_MouseEnter);
this.MouseLeave += new System.EventHandler(this.Form1_MouseLeave);
}
private void Form1_MouseLeave(object sender, EventArgs e)
{
this.Opacity = 0.5;
}
private void Form1_MouseEnter(object sender, EventArgs e)
{
this.Opacity = 1;
}
我想我们需要更多的信息。我创建了一个WindowsApplication,在构造函数中连接LostFocus事件,然后在LostFocus事件的方法中将不透明度设置为0.5。这对我来说很好。示例代码,这样我就可以看到你做了什么?是的!谢谢你的快速回答。这立刻解决了问题。我觉得自己很愚蠢,但只是不知道我的事情是对的。。。。是否有活动备忘单或参考列表供将来参考?对不起,不知道是否有好的备忘单。也许我应该做一个并在我的博客上发表。。。好主意。失焦事件本来是我的第一个想法,但这是winform Waymdn,有史以来最好的备忘单;)(无论如何,这是最完整的…)
public Form1()
{
this.MouseEnter += new System.EventHandler(this.Form1_MouseEnter);
this.MouseLeave += new System.EventHandler(this.Form1_MouseLeave);
}
private void Form1_MouseLeave(object sender, EventArgs e)
{
this.Opacity = 0.5;
}
private void Form1_MouseEnter(object sender, EventArgs e)
{
this.Opacity = 1;
}