作者lsmking7219 (LSM)
看板Visual_Basic
標題[.NET] 關於checkbox用副程式寫的問題
時間Mon Oct 21 16:37:11 2013
請輸入專案類型(網站專案或者應用程式專案):
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
1F:推 johnpage:不要用副程式,直接控制 10/21 21:47
2F:→ lsmking7219:但是有30多個checkbox要控制,想說用副程式會比較省行 10/21 22:10
3F:→ lsmking7219:數 10/21 22:11
4F:→ MOONRAKER:Handles後面可以加寫對應多個checkbox事件。 10/22 00:48
5F:→ EShensh:你的副程式是傳「值」,不是直接的元件。 10/22 01:25
6F:→ EShensh:你還不如在 test 寫個回傳值,在 Checked 事件中直接用 10/22 01:26
7F:→ EShensh:TextBox1.Enabled=testEnbl(CheckBox1.Checked) 之類的 10/22 01:27
8F:→ EShensh:TextBox1.BackColor=testColor(CheckBox1.Checked) 10/22 01:28
9F:→ EShensh:我不太確定 .net 傳值能不能直接傳元件,可以的話直接傳 10/22 01:29
10F:→ EShensh:就可以用你的寫法了。 10/22 01:29
11F:→ EShensh:不然你對「傳過去的數值」做任何改變,都是沒意義的。 10/22 01:30
12F:推 niwat:副程式, b, c 的部分用byref試試看 10/22 06:21
niwat大的方式就可以用了,
之前有想過用ByVal,沒用,當時忘了可以用ByRef看看,
非常感謝樓上幾位的幫忙!
※ 編輯: lsmking7219 來自: 140.118.170.85 (10/22 10:03)