0

たとえば、10個のボタンを備えたプログラムがあり、ランダムなボタンを押すと、その名前が文字列に保存されます。たとえば、ボタン1を押した場合、ボタンの名前に1を追加したいボタン2と言う文字列を変更しますが、今はできません文字列を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

/* 編集 */

「stringy = button1」を除いて、このコードのすべてが機能します100個のボタンを持つプログラムで、任意のボタンが押されると、変数 local= 押されたボタンの値が設定され、それが機能するので、そのbutton.nameを取得し、そこから1を削除して取得します上記のボタンの値(PS:グリッド上にボタンがあり、垂直方向に1から10まであり、1を削除するとボタンの名前が取得されますex: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 に答える