作者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)