如何在焦点丢失和获得事件上创建一个淡化形式

时间:2012-01-03 12:46:12

标签: vb.net winforms focus opacity

我在vb.net上做项目 当我点击按钮打开时,我打开窗体没有控制框(最小化,最大化等).set borderStyle到FixedToolWindow 我想在焦点和焦点上改变形式的不透明度失去焦点事件。 我也用过激活&停用的事件,但没有工作

   Private Sub form_Deactivate(ByVal sender As Object, ByVal e As System.EventArgs)HandlesMyBase.Deactivate
     Me.Opacity =0
      End Sub

   Private Sub form_Activated(ByVal sender As Object, ByVal e As System.EventArgs) Handles  MyBase.Activated
        Me.Opacity = 1
    End Sub

2 个答案:

答案 0 :(得分:1)

要执行此操作,您需要使用System.Windows.Forms.Timer。实现非常简单:

  • 有两个名为_fromOpactity和_toOpacity的变量,以及一个常量OpacityStep = 0.05
  • on Form激活或取消激活set _fromOpacity和_toOpacity并启动计时器淡入/淡出。
  • 在计时器Elapsed事件处理程序中,递增或递减OpacityStep(取决于from / to),直到达到所需的值。

有关如何执行此操作的完整示例,请参阅此article

致以最诚挚的问候,

答案 1 :(得分:1)

在第二行尝试 0.01 。您使用了 0 ,它会隐藏您的表单。

因为当您单击表单区域时,form_Actived不会运行。