天天看點

[VB.NET]VB.NET中如何實作QQ消息的效果?

[VB.NET]VB.NET中如何實作QQ消息的效果?

<script type="text/javascript"> </script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>

VB.NET中如何實作QQ消息的效果?

在WINFORM程式運作的時候工作列中會出現一個圖示,類似于QQ企鵝。

問題一:程式最小化以後,通過輕按兩下圖示的什麼事件或者方法可以讓程式窗體還原并且顯示在螢幕的最前面?(注意,程式不是被HIDE了,是以不能用show的方法)

問題二:怎樣實作類似QQ圖示消息通知的功能。

比如當收到好友的消息時,企鵝頭像變成好友的圖像,輕按兩下圖示的時候跳出的是聊天視窗;而當收到的是系統消息時,企鵝頭像變成喇叭圖像,輕按兩下圖示時跳出的是系統消息通知視窗。

請教各位大俠了,我是新人,分不多,全部20分送上。

__________________________________________________________________________

http://cache.baidu.com/c?word=vb,net,����&url=http://www.newasp.net/tech/net/11905.html&p=c679ce0386cc47ae03fbc7710d1d95&user=baidu

就是一個 托盤

__________________________________________________________________________

謝謝舞者的回複,托盤的問題我已經解決,問題的難點是要讓指定的視窗顯示在螢幕的最前面,類似于me.bringtofront,不過不是這麼寫的。

__________________________________________________________________________

沒人回複,自己繼續頂

__________________________________________________________________________

繼續頂

__________________________________________________________________________

再頂一下

__________________________________________________________________________

窗體本身就有一個置頂的選項

__________________________________________________________________________

暈倒,拜托,那是始終保持在頂部好不好?看清題意了,是最小化以後再通過其他事件傳遞的方法讓他重新出現在頂部!

__________________________________________________________________________

CSDN是不是沒人了?問什麼問題都找不到答案。

__________________________________________________________________________

還沒有找到答案,自己使勁往上頂,文章要沉了!!

__________________________________________________________________________

還沒有找到答案,自己使勁往上頂,文章要沉了!!

__________________________________________________________________________

還沒有找到答案,自己使勁往上頂,文章要沉了!!

__________________________________________________________________________

還沒有找到答案,自己使勁往上頂,文章要沉了!!

__________________________________________________________________________

還沒有找到答案,自己使勁往上頂,文章要沉了!!

__________________________________________________________________________

me.activte

__________________________________________________________________________

不對,這個已經試過了,沒用

__________________________________________________________________________

頂起,

我也在做問題二的功能

問題一為什麼不用hide()來做呢??

我是這樣實作的啊,有什麼問題嗎??

最小化事件

Private Sub server_min_SizeChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.SizeChanged

If Me.WindowState = FormWindowState.Minimized Then

Me.Hide()

NotifyIcon1.Visible = True

End If

End Sub

''滑鼠輕按兩下事件

Private Sub NotifyIcon1_MouseDoubleClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles NotifyIcon1.MouseDoubleClick

If e.Button = Windows.Forms.MouseButtons.Left Then

Me.Show()

Me.WindowState = FormWindowState.Maximized

End If

End Sub

__________________________________________________________________________

我不太明白問題的描述。窗體有一個TopMost屬性,可以顯示在最前面。

PS:同意樓上的代碼。

__________________________________________________________________________

在視窗顯示後讓它得到焦點就行了。me.focus

__________________________________________________________________________

關注ING!

__________________________________________________________________________

我說一下我現在的做法吧

公共變量 judge_int as integer ''判斷窗體是否已經打開,打開狀态為1,關閉狀态為0

在MDI容器的主窗體菜單ToolStripMenuItem的點選事件中寫到:

If judge_int = 0 Then

Dim f5 As New form2

f5.MdiParent = Me

f5.Show()

judge_int = 1

Else

''以下msgbox處為需要修改部分,我不想用提示消息框的方法,

''能不能做到直接打開form2窗體?不是重複打開。

MsgBox("窗體已經打開,是否被最小化了!")

End If

__________________________________________________________________________

是我表述不夠清楚還是大家不了解這個做法的實際用途和意義啊?

文章已經挂上去一個多星期了,到現在還沒找到解決方法,急切盼望高人指點啊!!

[color=#FF0000]注意關鍵問題:已經最小化的窗體(不是隐藏)或者被其他窗體覆寫的非活動窗體,重新顯示在MDI窗體的最前面。不是永遠置前!如果父窗體也被最小化了,點選NotifyIcon1圖示的時候,用什麼辦法展現父窗體,同時将指定的子窗體顯示在MDI窗體的最前面?[/color]

__________________________________________________________________________

''滑鼠輕按兩下事件

Private Sub NotifyIcon1_MouseDoubleClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles NotifyIcon1.MouseDoubleClick

If e.Button = Windows.Forms.MouseButtons.Left Then

Me.Show()

Me.WindowState = FormWindowState.Maximized

f5.MdiParent = Me

f5.WindowState = FormWindowState.Normal

End If

End Sub

不知道對否?你試試看

__________________________________________________________________________

錯了,你這個也隻是改變窗體大小

__________________________________________________________________________

Me.WindowState = FormWindowState.Maximized ‘讓MDI窗體最大化顯示出來

f5.MdiParent = Me

f5.WindowState = FormWindowState.Normal ’顯示你的form2窗體

‘Normal按原來的大小顯示出來并沒有改變大小

__________________________________________________________________________

上述代碼隻對最小化了的主窗體有作用(Me.WindowState = FormWindowState.Maximized ),對于主窗體裡面的子窗體好像沒反應呢。

__________________________________________________________________________

下面的才是對子窗體的操作

f5.MdiParent = Me

f5.WindowState = FormWindowState.Normal

__________________________________________________________________________

我當然知道了,就是說下面寫跟沒寫是一樣

__________________________________________________________________________