看板 Visual_Basic 關於我們 聯絡資訊
請輸入專案類型(網站專案或者應用程式專案): 2010 Express 想在checkbox打勾的時候,讓textbox可動作,顯示藍色 取消勾選的時候,textbox不可動作,顯示灰色, 但是下面這段程式碼並不會做任何動作, 想請問版上的各位先進哪個部份出了問題: Private Sub CheckBox1_CheckedChanged(sender As System.Object, e As System.EventArgs) Handles CheckBox1.CheckedChanged test(CheckBox1.Checked, TextBox1.Enabled, TextBox1.BackColor) End Sub Private Sub test(a As Boolean, b As Boolean, c As Color) If a = True Then b = True c = Color.Blue ElseIf a = False Then b = False c = Color.Gray End If End Sub 個人認為可能是副程式的定義上有問題, 但又不知道是哪個地方有問題, 還請指導,非常感謝! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.118.170.85
johnpage:不要用副程式,直接控制 10/21 21:47
lsmking7219:但是有30多個checkbox要控制,想說用副程式會比較省行 10/21 22:10
lsmking7219:數 10/21 22:11
MOONRAKER:Handles後面可以加寫對應多個checkbox事件。 10/22 00:48
EShensh:你的副程式是傳「值」,不是直接的元件。 10/22 01:25
EShensh:你還不如在 test 寫個回傳值,在 Checked 事件中直接用 10/22 01:26
EShensh:TextBox1.Enabled=testEnbl(CheckBox1.Checked) 之類的 10/22 01:27
EShensh:TextBox1.BackColor=testColor(CheckBox1.Checked) 10/22 01:28
EShensh:我不太確定 .net 傳值能不能直接傳元件,可以的話直接傳 10/22 01:29
EShensh:就可以用你的寫法了。 10/22 01:29
EShensh:不然你對「傳過去的數值」做任何改變,都是沒意義的。 10/22 01:30
niwat:副程式, b, c 的部分用byref試試看 10/22 06:21
niwat大的方式就可以用了, 之前有想過用ByVal,沒用,當時忘了可以用ByRef看看, 非常感謝樓上幾位的幫忙! ※ 編輯: lsmking7219 來自: 140.118.170.85 (10/22 10:03)