1

form1 と form2 の 2 つのフォームがあるとします。

vb.netのコーディングを使用して、別のフォームの特定のボタンをクリック、マウスオーバー(任意のイベント)するにはどうすればよいですか?

4

2 に答える 2

3

説明には多くの情報がないため、Form1 が Form2 を起動すると想定しています。

Form1 が起動すると、「button1」と「Launch Form 2」の 2 つのボタンがあります (button1 のテキストを変更するのを忘れてしまいました。申し訳ありません。:(

フォーム1

[Launch Form 2] をクリックすると、Form2 がポップアップします。

フォーム2

Form1 の「button1」をクリックすると、Form1 から発信されたメッセージ ボックスが次のように表示されます。

form1メッセージ

Form2 の "button1" をクリックすると、Form1 から発信されたメッセージ ボックスも表示され、次のように表示されます。

form2メッセージ

コードは次のとおりです。

フォーム1

Public Class Form1

    Private WithEvents frm2 As New Form2

    Private Sub Form1Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Form1Button.Click
        RunSomeCode("Called from form 1!")
    End Sub

    Public Sub RunSomeCode(ByVal message As String)
        MessageBox.Show(message)
    End Sub

    Private Sub Form1LaunchForm2Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Form1LaunchForm2Button.Click
        frm2.Activate()
        frm2.Show()
    End Sub

    Private Sub frm2_SimulateForm1ButtonClick() Handles frm2.SimulateForm1ButtonClick
        RunSomeCode("Called from form 2!")
    End Sub
End Class

フォーム2

Public Class Form2

    Public Event SimulateForm1ButtonClick()

    Private Sub Form2Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Form2Button.Click
        RaiseEvent SimulateForm1ButtonClick()
    End Sub
End Class

使い方

フォーム 2 には、「SimulateForm1ButtonClick」というパブリック イベントがあります。そのイベントは、任意のコード ブロックからいつでも発生させることができます。フォームのボタンをクリックすると、それを上げることにしました。

Form 1 には Form2 WithEventsのインスタンスがあります。WithEvents キーワードを使用しないと、Form2 のパブリック イベントが表示されないことが非常に重要です。:(

フォーム 1 には、フォーム 2 がそのボタンをクリックしたときに発生する「SimulateForm1ButtonClick」を処理するサブがあります。

ここで、もう 1 つの重要な詳細を説明します。Form1 で button1 がクリックされたときに実行されるコードは、実際には RunSomeCode() というプライベート サブルーチンにあります。Form1 の他の部分、つまり Form2 のイベントを処理する部分からコードにアクセスできるようになるため、これは重要です。

少しでもお役に立てば幸いです。あなたが何を求めていたのか正確にはわかりません。:/

コード: http://darin.hoover.fm/code/dl/FormsSandbox.zip

于 2012-04-21T07:48:07.917 に答える
2

イベントを発生させようとしている場合はForm2.Button1.PerformClick()、フォーム 2 のボタンが「button1」と呼ばれていると仮定して使用してください。

于 2012-04-23T21:38:09.330 に答える