GroupBox について

解決


  2008-10-14 08:08:36  No: 145283

Groupbox1に、3個のボタンを作成して、どれか押されたら
その押された内容で処理しようとしてますが
うまくGroupBOx1.textに値が入ってきません
イベントはどのようにすればいいのでしょうか?


やじゅ  2008-10-14 10:40:18  No: 145284

そもそもGroupBox1.textには値はセットされません。


アクア  URL  2008-10-15 23:49:58  No: 145285

アクアと申します。
微力ながらお手伝い申し上げます。

GroupBoxコントロールの中にある3つButtonコントロールが押され、そのButtonコントロールに応じた分岐処理をしたいという内容でお答えします。

Private Sub Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) _
    Handles Button1.Click, Button2.Click, Button3.Click

    For Each ctr As Control In Me.GroupBox1.Controls
        If TypeOf (ctr) Is System.Windows.Forms.Button Then

            Select Case DirectCast(sender, Button).Name
                Case Button1.Name
                    MessageBox.Show(Button1.Text + "が押されました。")
                Case Button2.Name
                    MessageBox.Show(Button2.Text + "が押されました。")
                Case Button3.Name
                    MessageBox.Show(Button3.Text + "が押されました。")
            End Select

        End If
    Next

End Sub

上記の方法はいかがでしょうか?
For文とIf文は記述しないでも動きます。
むしろSelect文だけでの方がこのコードの動きが判りやすいかもしれません。

ポイントはHandles句に3つのButtonコントロールのClickイベントがあるところです。
これで、どのButtonコントロールが押されようとイベントが発生します。
senderにはイベントが発生したオブジェクトが代入されているので、そのオブジェクトの名前に応じた分岐処理をSelect文で行っています。

ご質問の内容の中で、GroupBox1.Textに値が入っていかないとありますが、やじゅさんのご指摘のように値はセットされないため、上記の様な動作についての質問と解釈しました。

違っていたらお知らせ願います。


  2008-10-18 09:06:31  No: 145286

アクア様親切にご回答ありがとうございます。
ボタンを押して、GroupBox1の選択内容を取得するのではなく
GroupBox1内のボタンが押されたときに取得したいと思いました。
で下記のように、ボタンを押された時に、GroupBox1に値を設定するように
して解決致しました。ありがとうございました。
Private Sub GroupA_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles GroupA.TextChanged
        Me.名前.Text = Group時間A.Text
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Me.GroupA.Text = Me.Button1.Text
End Sub


※返信する前に利用規約をご確認ください。




  


  このエントリーをはてなブックマークに追加