• ベストアンサー

ラジオボタンのチェックをEnterキーで選択する

オブジェクト配列を宣言した ラジオボタン(要素数5)を Enterキーを押すと、順番にチェックを移動する仕様にしたいのですが、 上手くできません。 (5番目の要素からは、1番目の要素へ戻る) そもそも技術的に可能でしょうか? 詳しい方、教えて下さい。 VB2003のスタンダードエディションです。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

Public Class Form1 Private ctlRadio(4) As RadioButton Private Sub Form_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load For i As Integer = 0 To 4 ctlRadio(i) = New RadioButton() ctlRadio(i).Text = "Radio" + i.ToString() ctlRadio(i).Location = New Point(10, 10 + i * 20) ctlRadio(i).TabStop = True Me.Controls.Add(ctlRadio(i)) AddHandler ctlRadio(i).KeyDown, AddressOf Radio_KeyDown Next End Sub Private Sub Radio_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) If e.KeyCode = Keys.Enter Then ' 配列からコントロールのインデックスを探す Dim index As Integer = Array.IndexOf(ctlRadio, sender) ' 次のインデックスにフォーカスを移す ctlRadio((index + 1) Mod ctlRadio.Length).Focus() End If End Sub End Class ※ VB2005でしか確認していません。

gookinger
質問者

お礼

早速のご回答をありがとうございました。 VB2003用に手直しして、動きました。 又、教えて下さい。

関連するQ&A