0

ボタンの名前をキャプチャして、別のフォームで使用してデータベースにクエリを実行するにはどうすればよいですか。私はvbを初めて使用し、まだ非常に初期の学習段階にあるため、助けていただければ幸いです。

fromMain

Private Sub btnA_MouseDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles btnA.MouseDown
        If (e.Button = Windows.Forms.MouseButtons.Right) Then
            frmRacks.Show()
        ElseIf (e.Button = Windows.Forms.MouseButtons.Left) Then
            MessageBox.Show("Left clicked")
        End If
    End Sub

frmラック

ここで、データベースをクエリするために名前をキャプチャする必要があります

4

3 に答える 3

3
Private Sub Button1_MouseDown(sender As Object, e As MouseEventArgs) Handles Button1.MouseDown
    Dim name As String = DirectCast(sender, Button).Name
End Sub
于 2013-10-25T11:41:48.077 に答える
2

これを行うには多くの方法があります。1 つは frmRack で public フィールド/変数を宣言する方法、もう 1 つは Show の代わりに ShowDialog を使用する方法です。

最初のもの(パブリック)を最初に使用します。

Public buttonName as String

そして、 frmMain からのボタンクリックで、次のような値を渡します。

Private Sub btnA_MouseDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles btnA.MouseDown
    If (e.Button = Windows.Forms.MouseButtons.Right) Then
       frmRacks.buttonName = "btnA" ' Or you could use DirectCast as proposed by dbasnett
       frmRacks.Show()
    ElseIf (e.Button = Windows.Forms.MouseButtons.Left) Then
        MessageBox.Show("Left clicked")
    End If
End Sub

次に、frmRack の読み込みで、次のようにボタン名を割り当てるオプションがあります。

Private Sub frmRacks_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
  Dim query as String =  "SELECT * FROM " + buttonName 'This is only an example you could make your own here
End Sub
于 2013-10-25T11:47:55.780 に答える