2006年09月26日

イベントの中で他のコントロールのクリックを実行するには

例として、リストボックスの項目を選択・確定する処理で説明する。

一般的には
1.リストボックスの項目をクリックし選択状態にし、
2.ボタンコントロールをクリックして確定する。
の2段階で行う。

これを
1.リストボックスの項目をダブルクリックして選択・確定する。
という1つのイベントで実行させたいことがある。

VB6では以下のようになる。

Private Sub Form_Load()
With List1
.Clear
.AddItem "私"
.AddItem "お父さん"
.AddItem "お母さん"
.AddItem "お兄ちゃん"
.AddItem "お姉ちゃん"
.ListIndex = 0
End With
End Sub
 
'/// 選択したリストの項目を表示 ///
Private Sub Command1_Click()
MsgBox "「" & List1.List(List1.ListIndex) & "」が選ばれました"
End Sub
 
'/// ボタンのクリックを内部で実行 ///
Private Sub List1_DblClick()
Command1_Click '上記のクリックイベントを呼んでいるだけ
End Sub

VB.NET(2005含)になると、VB6のようにイベントプロシージャをそのまま呼ぶことはできない。そこで登場するのが PerformClickメソッド
ヘルプをみると「Clickイベントを発生させる」とある。クリック以外のイベントを発生させるメソッドがないか調べてみたがどうもなさそうだった。

Private Sub Form1_Load(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles MyBase.Load
With ListBox1
.Items.Clear()
.Items.Add("私")
.Items.Add("お父さん")
.Items.Add("お母さん")
.Items.Add("お兄ちゃん")
.Items.Add("お姉ちゃん")
.SelectedIndex = 0
End With
End Sub
 
'/// 選択したリストの項目を表示 ///
Private Sub Button1_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles Button1.Click
MsgBox("「" & ListBox1.SelectedItem & "」が選ばれました")
End Sub
 
'/// ボタンのクリックイベントを発生させる ///
Private Sub ListBox1_DoubleClick(ByVal sender As Object, _
ByVal e As System.EventArgs) Handles ListBox1.DoubleClick
Button1.PerformClick()
End Sub


posted by なっちゃん at 20:35| 静岡 ☁| Comment(0) | TrackBack(0) | VB vs VB.NET | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。

この記事へのトラックバック
×

この広告は180日以上新しい記事の投稿がないブログに表示されております。