[.NET] 關於checkbox用副程式寫的問題

看板Visual_Basic作者 (LSM)時間10年前 (2013/10/21 16:37), 編輯推噓2(2010)
留言12則, 5人參與, 最新討論串1/1
請輸入專案類型(網站專案或者應用程式專案): 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

10/21 21:47, , 1F
不要用副程式,直接控制
10/21 21:47, 1F

10/21 22:10, , 2F
但是有30多個checkbox要控制,想說用副程式會比較省行
10/21 22:10, 2F

10/21 22:11, , 3F
10/21 22:11, 3F

10/22 00:48, , 4F
Handles後面可以加寫對應多個checkbox事件。
10/22 00:48, 4F

10/22 01:25, , 5F
你的副程式是傳「值」,不是直接的元件。
10/22 01:25, 5F

10/22 01:26, , 6F
你還不如在 test 寫個回傳值,在 Checked 事件中直接用
10/22 01:26, 6F

10/22 01:27, , 7F
TextBox1.Enabled=testEnbl(CheckBox1.Checked) 之類的
10/22 01:27, 7F

10/22 01:28, , 8F
TextBox1.BackColor=testColor(CheckBox1.Checked)
10/22 01:28, 8F

10/22 01:29, , 9F
我不太確定 .net 傳值能不能直接傳元件,可以的話直接傳
10/22 01:29, 9F

10/22 01:29, , 10F
就可以用你的寫法了。
10/22 01:29, 10F

10/22 01:30, , 11F
不然你對「傳過去的數值」做任何改變,都是沒意義的。
10/22 01:30, 11F

10/22 06:21, , 12F
副程式, b, c 的部分用byref試試看
10/22 06:21, 12F
niwat大的方式就可以用了, 之前有想過用ByVal,沒用,當時忘了可以用ByRef看看, 非常感謝樓上幾位的幫忙! ※ 編輯: lsmking7219 來自: 140.118.170.85 (10/22 10:03)
文章代碼(AID): #1IPEUxO0 (Visual_Basic)