ラジオボタンリストについて

タグの編集
投稿者 うさぎ  (高校生) 投稿日時 2009/8/21 06:05:40
こんばんは。はじめて質問します。
現在、VB2005を使ってプログラムを組んでいるのですが、
ラジオボタンリストのことで悩んでいます。

ラジオボタンリストにフォーカスをあてたいのですが、

ラジオボタンリスト名.Focus()と書いてもうまくいきません。

他のコントロール(ドロップダウンリスト、テキスト)の場合は、

上記の方法でもうまくいきます。

たぶんラジオボタンで何を選択しているかがあいまいだからうまくいかないのかな、

とは思うのですが、

ラジオボタンリストのアイテムはどうやって取得すればいいのですか?

教えてください。
投稿者 るきお  (社会人) 投稿日時 2009/8/21 08:50:42
こんにちは。RadioButtonListということはWebアプリケーションですね。

簡単な方法ではRadionButtonListをPanelコントロールの中に入れてプログラム(VB)からは、以下のようにします。
Panel1.Focus


ただ今やってみると、これでいけることはいけるのですが、肝心の点線がでてきません。一度キーボードの↑↓などを押すとフォーカスが移動していることは確認できるのですが、どうなっているんでしょう。
これだとちょっとだめですね。

基本的にはRadioButtonListのように内部に項目を含むコントロールへのフォーカスは
RadioButtonListではなくその項目に対して行います。

たとえば、既定の設定ではRadioButtonListからはTableタグが生成され、
RadionButtonListの名前(id)はこのTableタグのidとなります。
個々の要素はInputタグになるので、このInputタグのidにフォーカスを移すことになります。
この構造はサーバー側ではなくクライアント側に生成されるので、フォーカスを移す処理もJavaScriptで記述する必要があります。
それが面倒なので冒頭のようにPanelでくくる技があるのですが先に書いたとおりいまひとつです。
試しにJavaScriptでも書いてみたのですが同じでした。
ClientScript.RegisterStartupScript(Me.GetType"MyScript""<script language=""JavaScript"">form1.RadioButtonList1_1.focus();</script>")


Vista + VB2008 + IE7 環境で試しているのですが原因がわかりません。

うさぎさんの環境ではPanel1.Focusでどうなりますか?

>ラジオボタンリストのアイテムはどうやって取得すればいいのですか?
これは普通にRadionButtonList1.Itemsで取得できます。
他にもSelectedItem, SelectedValueなどのプロパティから取得する方法もあります。
投稿者 うさぎ  (高校生) 投稿日時 2009/8/21 09:35:12
お返事ありがとうございました。

教えてくださった方法で記述してみたところ、

フォーカスはあたるのですがやはり点線がでませんでした。

やはりJAVAで書くのでしょうか??

私は最初

ラジオボタンリストの項目(SelectedIndexかitem?).Focus()

と書くのかなあと思っていました。

でもFocusはコントロールにしか記述できないので、

ラジオボタンリスト名.SelectedIndex.Focusとは書けないのですよね。

あまりJAVAはできないのでできるだけ回避したかったのですが、それだと難しそうですね。



投稿者 (削除されました)  () 投稿日時 2009/8/21 09:37:16
(削除されました)