0

例如,我有一个带有 10 个按钮的程序,当我按下一个随机按钮时,它的名称被保存到一个字符串中,我想将 1 添加到按钮的名称中,例如,如果我按下 button1 将字符串更改为 button2 但现在我不能使用该字符串,因为它无法将字符串转换为 system.windows.forms.buttons,我已经尝试过 Me.Controls 但它对我不起作用。

例子:

dim stringy as string
dim integr as integer
dim buton as button

sub procedureee
stringy = stringy.remove(0,6)
integr = val(stringy) + 1
stringy = "Button" & integr
button.backcolor = white
end sub


Button1_Click
stringy = button1
procedureee

/* 编辑 */

对不起,我认为我没有明确我的 sefl,这段代码中的所有内容都对我有用,除了“stringy = button1”它说字符串不能转换为 system.windows.forms.button 但这正是我想要做的,我有一个有 100 个按钮的程序,当按下任何按钮时,它会设置(“Dim local as button”)变量 local= 按下的按钮的值,它可以工作,所以我取那个 button.name 并从中删除 1 所以我得到上面按钮的值(PS:我在网格上有按钮,垂直方向从 1 到 10,如果我删除 1,我会得到按钮的名称,例如:button1gA3 变成 Button1gA2)但是当我尝试这样做时 local2 = stringy 它给了我消息(字符串无法转换为 system.windows.forms.button)有人知道如何解决这个问题吗?

谢谢。

4

2 回答 2

0

您可以使用FindControl()按名称查找控件。请注意,它不是递归的,因此您需要在包含您的按钮的直接父级上调用此方法。

于 2013-02-22T01:02:41.213 回答
0

干得好 ...

  Private Sub Button_Click(sender As Object, e As EventArgs) Handles Button1.Click, Button2.click

    Dim FullButtonName As String = sender.text

    Dim ButtonsNumber As String = FullButtonName.Replace("Button", "").Trim

    Dim NewButtonNumber As Integer = CType(ButtonsNumber, Integer) + 1

    sender.text = "Button " & NewButtonNumber.ToString

End Sub
于 2013-02-22T02:00:09.773 回答