史萊姆論壇

史萊姆論壇 (http://forum.slime.com.tw/)
-   程式語言討論區 (http://forum.slime.com.tw/f76.html)
-   -   突發奇想的問題 (http://forum.slime.com.tw/thread152150.html)

劍痞憶秋年 2005-06-24 02:30 PM

突發奇想的問題
 
像 表單
在表單的事件(EVENT) 中
可以用 ME 可以代表

那 控制項 有沒有類似的 關鍵字 來代替(至少在它自己的事件可以用)

只是突然想到的,因為不然每個都要 傳控制項 有點小累!!
==========================================
實例:
chkOther、 chkUCASE 都是 checkBox 控制項 (事實上還有很多個)
JetTemp_OnlyFortSume( 是 自訂 Function)

Private Function JetTemp_OnlyFortSume(JetControl_CheckBox As CheckBox, ByVal JetTemp$) As String
If JetControl_CheckBox.Value = 1 Then
..
..
Else
...
...
End If
End Function


Private Sub chkOther_Click()

Dim JetTemp$

' 數字
JetTemp = "O"

tSum.Text = JetTemp_OnlyFortSume(chkOther, JetTemp)

End Sub



Private Sub chkUCASE_Click()

Dim JetTemp$

' 數字
JetTemp = "U"

tSum.Text = JetTemp_OnlyFortSume(chkUCASE, JetTemp)

End Sub

mini 2005-06-24 04:24 PM

不太懂耶 ^^||
是指
各控制項使用同一個 自訂Function 時
不想傳遞(填) 控制項名稱 這個參數嗎?

那就要寫一個藉 滑鼠游標位置獲得控制項 的涵式
以此涵式傳回值為
自訂Function之參數

如此就可變成
Private Sub chkOther_Click()
...
tSum.Text = JetTemp_OnlyFortSume(IsCtrlItem_Object, JetTemp)
End Sub

Private Sub chkUCASE_Click()
...
tSum.Text = JetTemp_OnlyFortSume(IsCtrlItem_Object, JetTemp)
End Sub

至於 IsCtrlItem_Object 這個涵式的實作...
看看有沒有能人可以實作
(可能要用到幾個 WinAPI 比如 SendMessage ...)

魔術王子 2005-06-24 04:39 PM

VB的控制項可利用類似陣列的方式處理
譬如說您可以放一個按鈕
然後將它複製,在貼上(可以一直貼上),這時系統就會問您是否要見一個陣列
若您回答是,那這群按鈕就會只用一的事件,您會看到傳入值多一個Item

劍痞憶秋年 2005-06-24 04:59 PM

引用:

作者: mini
不太懂耶 ^^||
是指
各控制項使用同一個 自訂Function 時
不想傳遞(填) 控制項名稱 這個參數嗎?

差不多是這個意思了!!
確實是不想傳遞 這個參數,但在 自訂 Function 裡面又必須有 一個xx 來代表 目前控制項 才行!!

像 Form 的話,就可以寫成 Me 就可代表 Form
(先假設 VB 中 目前控制項 可以用 HE 來取代
那麼
(1)
If JetControl_CheckBox.Value = 1 Then
就可以改寫成
改成 If HE.Value = 1 Then
(2)目的:
(1)不用傳 控制項 參數
(2)自訂 Function 又可以達到取得 目前所在控制項 的資訊,以完成作業!

換句話說就是想知道 VB 有沒有提供這樣的東西可以用!!
就像 Me 也是 VB 提供的,
(自己實做是比較難累了點)

引用:

作者: 魔術王子
VB的控制項可利用類似陣列的方式處理
譬如說您可以放一個按鈕
然後將它複製,在貼上(可以一直貼上),這時系統就會問您是否要見一個陣列
若您回答是,那這群按鈕就會只用一的事件,您會看到傳入值多一個Item

感謝!!只不過小弟實在是不太習慣用 index 的方式
因為都是 同樣的控制項名稱,小弟就很難一下子知道它的用途是什麼了!
那麼 偶 還要記住說 Index = 0 是代表 什麼 、 Index = 1 又是代表 什麼用途!!!
偶習慣看到物件的命名 完全依實際上的用途 這樣 比較不會 ,不要打偶喔!!

真奇怪,為什麼目前的表單 有簡寫,目前的 Control 確沒有 相對的簡寫咧!!真好奇!!
◎◎(小弟 想到了,有試過 Screen.ActiveControl 啦,差不多 符合偶的需求,只不過它的流程好像更遠了,也不是很確定會不會有問題)

感謝 版主 及 魔術王子 的回覆,
拍寫啦,小弟就是懶 才會有這樣的想法的!!提出來互相研究研究囉!!

不知道 2005-06-24 06:52 PM

引用:

If JetControl_CheckBox.Value = 1 Then
就可以改寫成
改成 If HE.Value = 1 Then

改Name的屬性啊

< :) >

劍痞憶秋年 2005-06-25 12:54 AM

引用:

作者: 不知道
改Name的屬性啊

< :) >

非常感謝寶貴的意見,But 在這個 有很多個控制項不是只有一個
原本是用 JetControl_CheckBox 這個名稱 (來代表所有的傳進來的控制項)
可惜改名稱不是小弟想要的結果

其實啊,問題該改成 什麼 才能真正代表目前的控制項!!


所有時間均為台北時間。現在的時間是 03:38 AM

Powered by vBulletin® 版本 3.6.8
版權所有 ©2000 - 2025, Jelsoft Enterprises Ltd.

『服務條款』

* 有問題不知道該怎麼解決嗎?請聯絡本站的系統管理員 *


SEO by vBSEO 3.6.1