重慶分公司,新征程啟航
為企業提供網站建設、域名注冊、服務器等服務
為企業提供網站建設、域名注冊、服務器等服務
用格式轉換器(格式工廠)把ico格式轉換成其他可識別的格式
成都創新互聯公司主營濠江網站建設的網絡公司,主營網站建設方案,成都App制作,濠江h5微信小程序搭建,濠江網站營銷推廣歡迎濠江等地區企業咨詢
然后在添加
下一步(你的意思是要在界面設計中 往窗體上添加工具欄嗎?)
工具箱中 ---- 菜單和工具欄 ----- MenuStrip
窗體上方出現 '請再次鍵入'(vs2010中) 的框框 點一下就可以放"打開"什么的了
右面屬性中找到Image屬性.可以更改你自己的圖片了.
知道了嗎?
還有疑問你就追問 ````赫赫
vb.net安裝后自帶非常多的圖標,我的是vb2008,其路徑為:C:\Program Files\Microsoft Visual Studio 9.0\Common7\VS2008ImageLibrary\2052\VS2008ImageLibrary
自己解壓VS2008ImageLibrary后就能看到大量的常用圖標
又見面了,我研究下combbox控件的基礎代碼,然后重寫試試,現在也不會(第二個)。(如果有答案我也想看看O(∩_∩)O~)
第一個,在paint中寫。
(文本框,自己寫的)
e.?Graphics.drawimage(iconimage,New Rectangle(new point(),new size(20,20)))
代碼隨手寫的,數據微調下,20是文本框的高度。加載名為iconimage的bitmap對象,20*20的小圖標。
預先準備三個圖標文件,用于樹型控件中顯示磁盤符號和文件夾的圖像之用。
1、窗體上添加控件如下:
組合框控件 ComboBox1,樹型控件 TreeView1,列表框控件 ListBox1,圖像列表控件 ImageList1。
選中TreeView1,設置其ImageList屬性為ImageList1。
2、設置屬性
選中圖像列表控件 ImageList1,在屬性窗口里,選中屬性Images,單擊三個小點按鈕,出現圖像集合編輯器窗口,單擊[添加按鈕],一一把準備好的圖標文件進行添加,注意先后次序,如果不符合要求可以通過上下移動按鈕重新改變次序。完成后單擊[確定]。
運行圖如下:
完整代碼如下:
Imports?System.IO
Public?Class?Form1
Private?Sub?Form1_Load(ByVal?sender?As?System.Object,?ByVal?e?As?System.EventArgs)?Handles?MyBase.Load
'添加系統所有磁盤目錄符號
For?Each?MyDrive?As?String?In?Environment.GetLogicalDrives()
ComboBox1.Items.Add(MyDrive)
Next
'顯示第一個磁盤符號
ComboBox1.Text?=?ComboBox1.Items(0)
End?Sub
'遞歸過程添加目錄樹
Public?Sub?AddDirectory(ByVal?strFatherPath?As?String,?ByVal?strPath?As?String,?ByVal?nodeFather?As?TreeNode)
Dim?i?As?Integer
Dim?Mynode?As?New?TreeNode
'先添加本目錄
Mynode.Text?=?Strings.Replace(strPath,?strFatherPath??"\",?"",?,?1)
'為節點指定未被選中時顯示的圖標
Mynode.ImageIndex?=?1
'為節點指定被選中時顯示的圖標
Mynode.SelectedImageIndex?=?2
nodeFather.Nodes.Add(Mynode)
Application.DoEvents()
Try
Dim?str()?As?String?=?Directory.GetDirectories(strPath)
'遞歸遍歷該目錄的子文件夾
For?i?=?0?To?str.GetUpperBound(0)
AddDirectory(strPath,?str(i),?Mynode)
Next
Catch?ex?As?Exception
Debug.WriteLine(ex.Message)
End?Try
Mynode?=?Nothing
End?Sub
'根據給出的盤符添加目錄樹
Private?Sub?AddRootDirectory(ByVal?DiscSymbol?As?String)
Dim?Nynode?As?New?TreeNode
'先把磁盤盤符添加到樹中
TreeView1.Nodes.Clear()
Nynode.ImageIndex?=?0
Nynode.Text?=?DiscSymbol
Nynode.SelectedImageIndex?=?-1
TreeView1.Nodes.Add(Nynode)
Dim?i?As?Integer
'獲取磁盤根目錄下的文件夾
Dim?str()?As?String?=?Directory.GetDirectories(DiscSymbol??"\")
For?i?=?0?To?str.GetUpperBound(0)
'調用遞歸過程遍歷該文件夾里的所有子文件夾,并添加到樹型控件
AddDirectory(DiscSymbol,?str(i),?Nynode)
Next
Nynode?=?Nothing
End?Sub
Private?Sub?ComboBox1_SelectedIndexChanged(ByVal?sender?As?System.Object,?ByVal?e?As?System.EventArgs)?Handles?ComboBox1.SelectedIndexChanged
'根據磁盤符號的變更,顯示根目錄里的文件
ListBox1.Items.Clear()
For?Each?MyFile?As?String?In?System.IO.Directory.GetFiles(ComboBox1.Text)
ListBox1.Items.Add(MyFile)
Next
'根據磁盤符號的變更,重新顯示目錄樹
Dim?DiscSymbol?As?String
DiscSymbol?=?Microsoft.VisualBasic.Left(ComboBox1.Text,?Len(ComboBox1.Text)?-?1)
Call?AddRootDirectory(DiscSymbol)
End?Sub
'遞歸過程根據子目錄尋找上級目錄名--從而構成完整的目錄路徑
Private?Sub?AllPath(ByVal?ThisNode?As?TreeNode,?ByRef?MyPathName?As?String)
If?ThisNode.Level??1?Then
'該節點層數大于1,其父節點不是磁盤根目錄
MyPathName?=?ThisNode.Parent.Text??"\"??MyPathName
Dim?MyNode?As?TreeNode?=?ThisNode.Parent
Call?AllPath(MyNode,?MyPathName)
Else
'該節點層數等于1,其父節點就是磁盤根目錄
MyPathName?=?ComboBox1.Text??MyPathName
End?If
End?Sub
Private?Sub?TreeView1_AfterSelect(ByVal?sender?As?System.Object,?ByVal?e?As?System.Windows.Forms.TreeViewEventArgs)?Handles?TreeView1.AfterSelect
'為了搜索選中的節點對應目錄的文件,需要組成全路徑
Dim?MyAllPathName?As?String?=?TreeView1.SelectedNode.Text
Dim?MyNode?As?TreeNode?=?TreeView1.SelectedNode
If?TreeView1.SelectedNode.Level?=?0?Then
'如果選中的是根節點
MyAllPathName?=?ComboBox1.Text
Else
'如果選中的是非根節點,調用遞歸過程組成全路徑
Call?AllPath(MyNode,?MyAllPathName)
MyAllPathName?=?MyAllPathName??"\"
End?If
'根據路徑,搜索文件名并顯示
ListBox1.Items.Clear()
For?Each?MyFile?As?String?In?System.IO.Directory.GetFiles(MyAllPathName)
ListBox1.Items.Add(MyFile)
Next
End?Sub
End?Class
1.單擊“文件系統”的“應用程序文件夾”,右擊“某某.exe”程序集,選擇“創建某某.exe的快捷方式”,修改成你要的名稱。
2.選擇“創建某某.exe的快捷方式”屬性:Icon(表示快捷方式圖標),選擇“瀏覽”彈出“圖標”窗體:
添加ico圖標
3.選擇“創建某某.exe的快捷方式”屬性:Folder(表示 在哪里的快捷方式)。彈出“選擇文件夾”窗體:
“用戶桌面”表示:在桌面上的快捷方式;
“用戶的‘程序’菜單”表示:在開始菜單中的快捷方式
小弟表達能力不行,如果兄弟不明白,俺給你抓圖,程序打包我也搞了好幾天
窗口邊框(FormBorderStyle)設為None,窗口(WindowState)設為Maximized,如果想讓窗口背景透明,將窗口背景顏色和TransparencyKey設為同一種顏色,按鈕用Label(標簽)代替,背景設為Transparent,邊框設為None,文字位置一般是下中,Label控件支持無邊框。
動感效果在鼠標事件(MouseDown按下,MouseUp抬起,MouseEnter進入,MouseLeave離開)更換指定的圖片;
添加timer控件還可以使用動畫
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
Me.Label1.Refresh()
End Sub
快捷鍵用熱鍵
RegisterHotKey
函數功能:該函數定義一個系統范圍的熱鍵。
函數原型:BOOL RegisterHotKey(HWND hWnd,intid,UINT fsModifiers,UINT vk);
參數:
hWnd:接收熱鍵產生WM_HOTKEY消息的窗口句柄。若該參數NULL,傳遞給調用線程的WM_HOTKEY消息必須在消息循環中中進行處理。
id:定義熱鍵的標識符。調用線程中的其他熱鍵不能使用同樣的標識符。應用功能程序必須定義一個0X0000-0xBFFF范圍的值。一個共享的動態鏈接庫(DLL)必須定義一個0xC000-0xFFFF范圍的值伯GlobalAddAtom函數返回該范圍)。為了避免與其他動態鏈接庫定義的熱鍵沖突,一個DLL必須使用GlobalAddAtom函數獲得熱鍵的標識符。
fsModifoers:定義為了產生WM_HOTKEY消息而必須與由nVirtKey參數定義的鍵一起按下的鍵。該參數可以是如下值的組合:
MOD_ALT:按下的可以是任一Alt鍵。MOD_CONTROL:按下的可以是任一Ctrl鍵。
MOD_SHIFT:按下的可以是任一Shift鍵。
MOD_WIN:按下的可以是任一Windows按鍵。
vk:定義熱鍵的虛擬鍵碼。
返回值:若函數調用成功,返回一個非O值。若函數調用失敗,則返回值為0。若要獲得更多的錯誤信息,可以調用GetLastError函數。
備注:當某鍵被接下時,系統在所有的熱鍵中尋找匹配者。一旦找到一個匹配的熱鍵,系統將把WM_HOTKEY消息傳遞給登記了該熱鍵的線程的消息隊列。該消息被傳送到隊列頭部,因此它將在下一輪消息循環中被移去。該函數不能將熱鍵同其他線程創建的窗口關聯起來。
若為一熱鍵定義的擊鍵己被其他熱鍵所定義,則RegisterHotKey函數調用失敗。
若hWnd參數標識的窗口已用與id參數定義的相同的標識符登記了一個熱鍵,則參數fsModifiers和vk的新值將替代這些參數先前定義的值。
若設置MOD_KEYUP位,則當發生鍵被按下或被彈起的事件時,窗口將發送WM_HOTKEY消息。
RegisterHotKey可以被用來在線程之間登記熱鍵。
UnregisterHotKey
函數功能:該函數釋放調用線程先前登記的熱鍵。
函數原型:BOOL UnregisterHotKey(HWND hWnd,int id);
參數:
hWnd:與被釋放的熱鍵相關的窗口句柄。若熱鍵不與窗口相關,則該參數為NULL。
id:定義被釋放的熱鍵的標識符。
返回值:若函數調用成功,返回值不為0。若函數調用失敗,返回值為0。若要獲得更多的錯誤信息,可以調用GetLastError函數。
1、首先定義所需要用到的常量
如圖所示,在窗體代碼后定義常量和API函數
代碼如下:
Public Const WM_HOTKEY As Integer = H312
Public Const MOD_ALT As Integer = H1
Public Const MOD_CONTROL As Integer = H2
Public Const MOD_SHIFT As Integer = H4
Public Const GWL_WNDPROC As Integer = (-4)
Public Declare Auto Function RegisterHotKey Lib "user32.dll" Alias "RegisterHotKey" (ByVal hwnd As IntPtr, ByVal id As Integer, ByVal fsModifiers As Integer, ByVal vk As Integer) As Boolean
Public Declare Auto Function UnRegisterHotKey Lib "user32.dll" Alias "UnregisterHotKey" (ByVal hwnd As IntPtr, ByVal id As Integer) As Boolean
下面過程是注冊Ctrl+T的組合鍵為組合鍵,假如注冊成功,則返回true,反之注冊失敗則返回false,我們可以根據返回的結果判斷并提醒用戶注冊的情況。
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim isResult As Boolean
isResult=RegisterHotKey(Handle, 0, MOD_CONTROL, Asc("T")) ’注冊Ctrl+T的組合鍵
If isResult = False Then
MsgBox("注冊熱鍵Ctrl+T失敗")
End If
End Sub
[apge]
下面過程為重載WndProc過程,響應熱鍵并處理熱鍵,這里是用來隱藏和顯示程序主界面。
Protected Overrides Sub WndProc(ByRef m As Message)
If m.Msg = WM_HOTKEY Then
System.Diagnostics.Process.Start("C:\WINDOWS\system32\freecell.exe")'運行當空接龍游戲
End If
MyBase.WndProc(m)
End Sub
最后在關閉窗體的時候釋放占用的熱鍵,如果前面注冊失敗的話,則會出現釋放失敗的結果。
Private Sub Form1_Closed(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Closed
Dim isResult As Boolean
isResult=UnRegisterHotKey(Handle, 0)
End Sub
雙擊打開指定的程序
Private Sub Label1_DoubleClick(ByVal sender As Object, ByVal e As System.EventArgs) Handles Label1.DoubleClick
System.Diagnostics.Process.Start("C:\WINDOWS\system32\freecell.exe")
End Sub
System.Diagnostics.Process.Start("路徑")打開指定程序
先列出這些吧