C# 当窗体失去焦点时,如何触发不透明事件?

C# 当窗体失去焦点时,如何触发不透明事件?,c#,event-handling,C#,Event Handling,目的是在窗体失去焦点时触发不透明事件。表单有一个保持在顶部的设置。视觉效果是点击一个可能重叠的窗口,但当不关注时,窗体将保持在顶部,但在角落中略微透明,使其易于访问,但可以看到下面的内容 我一直在谷歌上搜索,不知道如何在窗体失去焦点,然后窗体重新获得焦点,以将不透明度恢复到100%或其他地方确定的级别时,正确触发此事件 小费 听起来你好像在寻找这些事件 更新 在回应关于LostFocus事件的评论时,有必要澄清它是如何工作的。表单的LostFocus事件继承自控件。当控件失去焦点时,它将被触发;

目的是在窗体失去焦点时触发不透明事件。表单有一个保持在顶部的设置。视觉效果是点击一个可能重叠的窗口,但当不关注时,窗体将保持在顶部,但在角落中略微透明,使其易于访问,但可以看到下面的内容

我一直在谷歌上搜索,不知道如何在窗体失去焦点,然后窗体重新获得焦点,以将不透明度恢复到100%或其他地方确定的级别时,正确触发此事件

小费


听起来你好像在寻找这些事件

更新

在回应关于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;
}