Vb.net 对按钮进行控制

Vb.net 对按钮进行控制,vb.net,Vb.net,我一直想问我的问题。 我做了3个按钮,按钮1,2和3。所以当我点击一个按钮时,自动按钮会改变颜色。我正在使用这样的代码 For Each ctrl As Control In frm.Controls If ctrl = button Then ctrl.backcolor = color.red End If Next 但仍然存在错误。请帮助我,正确的代码是: For Each ctrl As Control In frm.Controls If T

我一直想问我的问题。 我做了3个按钮,按钮1,2和3。所以当我点击一个按钮时,自动按钮会改变颜色。我正在使用这样的代码

For Each ctrl As Control In frm.Controls
   If ctrl = button Then
      ctrl.backcolor = color.red
   End If     
Next

但仍然存在错误。请帮助我,正确的代码是:

For Each ctrl As Control In frm.Controls
    If TypeOf ctrl Is Button Then
        DirectCast(ctrl,Button).BackColor = Color.Red
    End If
Next

正确的代码应该是:

For Each ctrl As Control In frm.Controls
    If TypeOf ctrl Is Button Then
        DirectCast(ctrl,Button).BackColor = Color.Red
    End If
Next
使用以下代码:

    For Each ctrl As Control In Controls
        If TypeOf ctrl Is Button Then
            ctrl.BackColor = Color.Red
        End If
    Next
错误的做法是将实例与类型进行比较。您需要做的是将一个实例的
类型
与另一个
类型
进行比较。请使用以下代码:

    For Each ctrl As Control In Controls
        If TypeOf ctrl Is Button Then
            ctrl.BackColor = Color.Red
        End If
    Next

错误的做法是将实例与类型进行比较。您需要做的是将一个实例的
类型
与另一个
类型
进行比较,这不是最好的方法。看看下面的选项

Sub buttons_click(sender as Object, e as event) Handles button1.Click, 
                                                      _ button2.Click, 
                                                      _ button3.Click
    sender.backcolor = color.red
End Sub
抱歉,如果语法有点错误,我已经有一段时间没有使用vb了


希望这有帮助。

这不是最好的方法。看看下面的选项

Sub buttons_click(sender as Object, e as event) Handles button1.Click, 
                                                      _ button2.Click, 
                                                      _ button3.Click
    sender.backcolor = color.red
End Sub
抱歉,如果语法有点错误,我已经有一段时间没有使用vb了



希望这有帮助。

您必须指出错误的确切原因!你必须提到错误到底是什么!哈哈,我是个C#guy,我从来没见过=基本语法不适合我的眼睛!!我相信您仍然需要将
ctrl
转换为
按钮,然后才能使用任何按钮属性(例如
BackColor
)。@Oded:在分配特定于按钮的属性之前,您需要将
ctrl
转换为
按钮(使用
DirectCast(ctrl,Button)
)。但是
BackColor
Control
的继承属性,所以应该编译它。@code Gray-
Control
没有这样的属性
WebControl
Dos.@Oded:我假设使用WinForms
System.Windows.Forms.Control
有一个
BackColor
属性。我只是测试了一下,以防我遗漏了一些明显的东西,但是代码在没有从基础
控件
类型转换的情况下工作得很好。哈哈,我是一个C#guy,我从来没有看到过=基本语法不适合我的眼睛!!我相信您仍然需要将
ctrl
转换为
按钮,然后才能使用任何按钮属性(例如
BackColor
)。@Oded:在分配特定于按钮的属性之前,您需要将
ctrl
转换为
按钮(使用
DirectCast(ctrl,Button)
)。但是
BackColor
Control
的继承属性,所以应该编译它。@code Gray-
Control
没有这样的属性
WebControl
Dos.@Oded:我假设使用WinForms
System.Windows.Forms.Control
有一个
BackColor
属性。我只是测试了它,以防我遗漏了一些明显的东西,但是代码运行良好,无需从基本
控件
类型强制转换。我相信您仍然需要将
ctrl
强制转换为
按钮
,然后才能使用任何按钮属性(例如
背景色
)。不,
BackColor
是class
Control
的一个属性,该属性由
按钮
类覆盖。多态性,:)我的观点是,它没有
BackColor
属性<但是,code>WebControl
会。您是否将
Win Forms
WPF
混淆了?这家伙使用的是
winforms
,而不是
WPF
。上面的代码更改所有按钮。我只想更改我单击的按钮。请帮助meI相信,在您可以使用任何按钮属性(例如
BackColor
)之前,您仍然需要将
ctrl
强制转换为
按钮。不,
BackColor
是类
控件的属性,而
按钮
覆盖了类。多态性,:)我的观点是,它没有
BackColor
属性<但是,code>WebControl
会。您是否将
Win Forms
WPF
混淆了?这家伙使用的是
winforms
,而不是
WPF
。上面的代码更改所有按钮。我只想更改我单击的按钮。请帮助meI相信,在您可以使用任何按钮属性(如
背景色
)之前,您仍然需要将
发件人
转换为
按钮
。刚刚测试过,它就可以工作了。不过,使用它可能是安全的。我相信在您可以使用任何按钮属性(例如
BackColor
)之前,您仍然需要将
发送方
转换为
按钮
。只需对其进行测试即可。也许投下它是安全的。