- PR -

別フォームのボタンを押した時の処理

1
投稿者投稿内容
さばく
会議室デビュー日: 2008/09/18
投稿数: 8
投稿日時: 2008-10-18 19:24
別フォームのボタンを押した時の処理

例えばですが、Form1 の Button1 をクリックした時に、Form2 を表示し
Form2 にある Button1 をクリックした時にメッセージを表示するようにしたいです。

Public Class Form1

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Form2.Show() 'Form2 を表示
'Form2 の Button1 をクリックした時
MsgBox("Form2 の Button1 がクリックされました") 'メッセージを表示
End Sub

End Class

Form2 の Button1 をクリックした時の処理はどのようにすれば良いでしょうか?
一応、ダイアログの要領でやろうとしたのですが旨くいきませんでした。

恐れ入りますが、ご教授お願いします。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2008-10-18 23:04
引用:

さばくさんの書き込み (2008-10-18 19:24) より:

Form2 の Button1 をクリックした時の処理はどのようにすれば良いでしょうか?
一応、ダイアログの要領でやろうとしたのですが旨くいきませんでした。


モーダル表示であれば、ShowDialog メソッドで戻り値 DialogResult を見ることができますが、今回はモードレス表示ですので、Form1 側で Form2 の Close イベントもしくは Button のイベントを実装すれば良いです。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
さばく
会議室デビュー日: 2008/09/18
投稿数: 8
投稿日時: 2008-10-19 10:13
じゃんぬねっとさんご返事有難うございます、何時もサイトの方参考にさせて頂いてます。
なるほど、モーダル表示でなければダイアログで値を見ることが出来ないのですね。
まだ具体的にどう実装すれば良いかは解ってませんが、これを手掛かりに頑張って調べてみます。
さばく
会議室デビュー日: 2008/09/18
投稿数: 8
投稿日時: 2008-10-19 15:39
解決しました
モーダル表示にさせれば簡単に出来そうだったので、モーダル表示にて解決出来ました。

(Form2 の Button1 プロパティの DialogResult の値を OK にしてます。)
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
'Form2を表示し、Form2 の Button1 をクリックした時
If Form2.ShowDialog() = Windows.Forms.DialogResult.OK Then
MsgBox("Form2 の Button1 がクリックされました")
End If
End Sub
End Class

という感じの簡単な方法で旨く出来ました。
まだプログラム始めたてなので、ちょっとした事でつまずく毎日です;
本当に有難うございました、また何かあった時は宜しくお願いします。
1

スキルアップ/キャリアアップ(JOB@IT)