Visual_Basic 板


LINE

※ 引述《Peruheru (還在想)》之銘言: : ※ 引述《sdwufei (玉鼎)》之銘言: : : 假如我現在按鈕(Command5)已經寫好動作了。當然我用滑鼠按按鈕 : : 他就會執行我的動作。 : : 而我希望我按鍵盤的某個按鍵(ex:"a")就等於滑鼠去按那個按鈕。 : : 所以如下的程式就可以達到了。 : : Private Sub Text1_KeyPress(KeyAscii As Integer) : : If KeyAscii = 97 Then Command5_Click : : End Sub : : 但是當今天我的按鈕是個元件陣列時,例如我下這樣的指令就會出錯了。 : : If KeyAscii = 97 Then Command5(0)_Click : : 請問該怎麼下呢? : 我知道你程式問題在哪裡了 : 請你要注意一下 : Command5_Click : 這個東西是純粹的Sub : 就像如果我寫 : Private Sub MakeLabel(Byval .....) : ....... : .... : .. : End Sub : 那個Command5_Click : 其實身分就跟我寫的這個MakeLabel是同樣的身分 : 請注意,它們都只是一個Sub : 知道你的問題在哪裡了嗎? : 你將Sub當成控制項來看了! : 控制項陣列可以使用Command5(0).Text這種方式存取 : 但是Sub可沒這回事 : 尤其是你的寫法 : 很明顯你將Command5_Click : 拆成了Command5 和 _Click 兩部分 : 然後試圖使用陣列存取Command5陣列的某個控制項 : 想要觸發他的Click事件是嗎? : 你這麼做 : 就像我上面宣告了那個 MakeLabel 的Sub以後 : 將MakeLabel拆成 Make 和 Label : 然後試圖存取Make(0)Label : 你覺得這種東西存在嗎? : 重點就是 : Command5_Click : 這是一個完整的Sub名稱 : 並不是你可以擅自將Command5 和 _Click拆成兩部分的東西 : 事實上Command5_Click可以改成任何名稱 : 比如我可以再拿上面宣告的Sub : 我可以寫完那個MakeLabel的Sub以後 : 將它Handle給Command5 : 你就會看到 : Private Sub MakeLabel(ByVal ...) Handles Command5.Click : ...... : .... : ... : End Sub : 這時我按下Command5 : 呼叫的就是MakeLabel這個Sub : 而我的程式可以從頭到尾都不存在 Command5_Click 的這個Sub : 並非Command5按下時呼叫的Sub就一定得是叫做Command5_Click的Sub : 這個Sub要叫什麼名字對程式來說完全沒有影響 : 就算你將某個Sub設定給控制項陣列的事件呼叫函式 : 你也不能使用Command5(0)_Click這種方式存取 : 要說為什麼會有錯誤的話 : 是因為程式跟本找不到名稱叫做Command5(0)_Click的函式可以呼叫 : 這是有些人會犯的錯誤,他們看錯重點了 : 程式要找Command5的Click事件時 : 是去尋找Command5.Click指向哪一個Sub : 但是完全不會去管這一個Sub到底叫什麼名字 : 就算你亂取一通,只要有 xxx.Click事件有指著它,程式就可以找的到 : 至於有人推文回答的Command5_Click(0) : 請注意,這是表示你呼叫Command5_Click這個Sub之後 : 傳入一個參數給它,內容是整數的 0 這個數值 : 而非想像中的「呼叫編號是第零個控制項的Click處理函式」 : 或許你先將你Command5的Click事件貼上來給大家看看 : 不然我只會覺得你的作法很神奇 : 完全搞不懂你到底想怎麼呼叫 : come on~ 我猜想原PO是有了一組Command Button的陣列....... 則當你想要編寫Command_Click事件時..... 你會發現事件的Sub 跟平常的不太一樣..... 平常的====> Private Sub Command_Click() 陣列的====> Private Sub Command_Click(byval Index As Integer) 所已.....在KeyPress事件裡就必須改成.... If KeyCode = (你想要按哪個按鍵的KeyCode) Then Call Command_Click(Command陣列的Index) End If --



※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 218.160.49.136
1F:推 Peruheru:那果然還是傳入一個參數這樣,只是參數代表了索引值 06/26 16:10







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:WOW站內搜尋

TOP