vb.net窗体的出现方式

wenjunsu 2009-04-02 07:59:11

众所周知:vb.net写的WINForm 运行的时候,就是突然弹出一个窗口 给人的感觉很不好
所以请问各位vb.net牛人,我如何实现比较有个性的窗体出现方式呢?
打个比方:窗体出现的效果是 1.从窗体中间向窗体四周发散出现
2.从窗体左边往右边出现
还有其他形式的特效
我记得可以引入一个dll文件 就可以实现这种效果

貌似是个user32的dll文件

但是我不知道vb.net如何引用这个dll文件来实现我上述的效果

Ps:请写清怎样用vb.net来使用user32这个dll文件来实现我上面的效果

如果可以不使用这个dll文件 ,用其他方法也可以的话 请给出方法 最好有个例子

一经测试成功 分送上 小弟在这个谢谢各位牛人了
...全文
165 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
wenjunsu 2009-04-05
  • 打赏
  • 举报
回复


分不多 只好这么给了

但是鼓励 帮助解决问题的

多谢7楼
chuxue1342 2009-04-04
  • 打赏
  • 举报
回复
漂亮~~~
cnzdgs 2009-04-04
  • 打赏
  • 举报
回复
user32.dll中的AnimateWindow函数。
dreamice01 2009-04-03
  • 打赏
  • 举报
回复
学习了
VINCNET003 2009-04-03
  • 打赏
  • 举报
回复
赞这个方法
messi_yang 2009-04-03
  • 打赏
  • 举报
回复
頂一下啊~~
這個問題有特色~
wsfyc009 2009-04-03
  • 打赏
  • 举报
回复
用WindowsApi函数可以简单实现你说的要求
这是我用过的:
Private Declare Function AnimateWindow Lib "user32" Alias "AnimateWindow" (ByVal hwnd As IntPtr, ByVal dwTime As Integer, ByVal dwFlags As Integer) As Boolean

Const AW_HOR_POSITIVE As Integer = 1 '窗口显示动画,自定义窗体出现方式
Const AW_HOR_NEGATIVE As Integer = 2
Const AW_VER_POSITIVE As Integer = 4
Const AW_VER_NEGATIVE As Integer = 8
Const AW_CENTER As Integer = 1
Const AW_HIDE As Integer = 65536
Const AW_ACTIVATE As Integer = 131072
Const AW_SLIDE As Integer = 262144
Const AW_BLEND As Integer = 524288 '窗口显示动画,自定义窗体出现方式
函数调用比如:
AnimateWindow(Me.Handle, 1500, AW_HOR_NEGATIVE Or AW_SLIDE)
appleller 2009-04-02
  • 打赏
  • 举报
回复
学习!
elmnd 2009-04-02
  • 打赏
  • 举报
回复
顶1L。
就是可以把窗口先居中, 而且吧窗口缩得很小, 然后通过TIMER把窗口放大。 当窗口大到一定程度了, KILLTIMER
oyljerry 2009-04-02
  • 打赏
  • 举报
回复
一般都是用一个定时器,设定比较小的时间间隔,然后对应的MoveWindow() 移动对应的窗体等..
jlj84237485 2009-04-02
  • 打赏
  • 举报
回复
帮顶一下
Micheal_NET 2009-04-02
  • 打赏
  • 举报
回复
UP
bw555 2009-04-02
  • 打赏
  • 举报
回复
可以用timer自己写一个,给你个form逐渐消失的例子


  Dim i As Double = 1
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Me.MinimumSize = Me.Size
Me.MaximumSize = Me.Size
AddHandler Label1.MouseEnter, AddressOf Me.Form1_MouseEnter
AddHandler Label1.MouseLeave, AddressOf Me.Form1_MouseLeave
Me.Timer1.Start()
End Sub

Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
i -= 0.01
Me.Opacity = i
System.Windows.Forms.Application.DoEvents()
If i <= 0 Then
Me.FindForm.RemoveOwnedForm(Me)
Me.Close()
End If
End Sub

Private Sub Form1_MouseEnter(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.MouseEnter
Me.Timer1.Stop()
i = 1
Me.Opacity = i
End Sub

Private Sub Form1_MouseLeave(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.MouseLeave
Me.Timer1.Start()
End Sub

16,554

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧