C#でフォームのオブジェクト名を変数名で指定する方法

このQ&Aのポイント
  • C#でフォームのオブジェクトを変数名で指定する方法について教えてください。
  • 例えば、フォームにラジオボタンrdo0〜rdo9と、それぞれに対応するテキストボックスtxt0〜txt9が用意されている場合、rdo1がチェックされていたらtxt1に"OK"と表示するようにするにはどうすればよいですか?
  • 変数をオブジェクト名として認識させるための方法がわかりません。ご教授願います。
回答を見る
  • ベストアンサー

C#でフォームのオブジェクト名を変数名で指定

C#でフォームのオブジェクトを変数名で指定するにはどうしたらよいでしょうか? 例えば、フォームにラジオボタンrdo0~rdo9と、 それぞれに対応するテキストボックスtxt0~txt9が用意されている状態で、 rdo1がチェックされていたらtxt1に"OK"と表示、 rdo2がチェックされていたらtxt2に"OK"と表示・・・ といったことをfor文で実現する場合どのようにしたらよいでしょうか? 変数をオブジェクト名として認識させるための方法がわかりません。 どなたかご教授願います。 ********************************************* for(int i=0;i<10;i++) {  rdoname = "rdo" + i;  txtname = "txt" + i;  if((何らかの処理?)(rdoname).checked)   (何らかの処理?)(txtname).txt = "OK"; } **************************************** ↑この、オブジェクトとして認識する為の「何らかの処理」部がわかりません。

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

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

参考URL参照。

参考URL:
http://dobon.net/vb/dotnet/control/findcontrolbyname.html
nanigashik
質問者

お礼

ありがとうございます。 大変助かりました!

関連するQ&A

  • オブジェクト名に変数は?

    List1 List2といったオブジェクト名についている「1」とか「2」と言った数字を変数に出来ないのでしょうか? List1.Clear List2.Clear と一つずつ記述するのでなく、たとえば for I=0 to 2 ListI.Clear next i みたいにならないのでしょうか?VB6使ってます ご教授お願いします。

  • オブジェクト名に変数を使いたい

    <form id="form1" name="form1" method="post" action=""> <label for="q1-1"><input id="q1-1" name="q1" type="radio" value="1" />あ</label> <label for="q1-2"><input id="q1-2" name="q1" type="radio" value="0" />い</label> <label for="q1-3"><input id="q1-3" name="q1" type="radio" value="0" />う</label> <label for="q1-4"><input id="q1-4" name="q1" type="radio" value="0" />え</label> <label for="q2-1"><input id="q2-1" name="q2" type="radio" value="1" />あ</label> <label for="q2-2"><input id="q2-2" name="q2" type="radio" value="0" />い</label> <label for="q2-3"><input id="q2-3" name="q2" type="radio" value="0" />う</label> <label for="q2-4"><input id="q2-4" name="q2" type="radio" value="0" />え</label> </form> ============================================================ 上のような4択の問題が10問あります。 これを採点して合計点数を表示させたいと思っていますが、 下記のようにfor文を使う際、オブジェクト名の、"q1"の"1"というところに変数nを使いたいのですが、やり方がわかりません。 ============================================================ for(var n=0;n<10;n++){ var length=document.form1.q1.length; for(var i=0;i<length;i++){ var checked=document.form1.q1[i].checked; if(checked==true){ ans = i; } } var value=document.form1.q1[ans].value; } ============================================================ いろいろ調べてみましたが、うまくいかず固まっております。 どなたかご教授いただけませんでしょうか?

  • VBAでのオブジェクト名の付け方で困っています。

    私が知りたいのはユーザフォームを一度作成した後にオブジェクトを追加したときのオブジェクト名の処理の仕方です。 今、EXCEL VBAでアンケート入力フォームを作成しています。テキストボックスやチェックボックスが全部で70ほどあります。以下のようにControlsコレクションを用いてユーザフォームに入力した文字列などをワークシートに追加しています。 ……<略> For i = 1 To 10 Cells(Row, i).Value = Me.Controls("CheckBox" & i ).Value Next i ……<略> しかし、入力フォームの画面構成を変更して、新たにテキストボックスやチェックボックスを追加すると、例えば、ユーザフォーム上で隣り合ったTextBox1とTextBox2の間にTextBox35が入ってきて以下のようにコードを書き換えねばなりません。 ……<略> Cells(Row, 1).Value = Me.CheckBox1.Value Cells(Row, 2).Value = Me.CheckBox35.Value For i = 2 To 10 Cells(Row, i+1).Value = Me.Controls("CheckBox" & i ).Value Next i ……<略> プロパティからオブジェクト名のひとつひとつを編集してユーザフォームのテキストボックスの表示順にするのも手間ですし……まだ、設計の試行錯誤の段階なのでまだまだテキストボックスやチェックボックスを追加・削除をすると思いますし…… 何か効率のよいオブジェクト名の付け方はないでしょうか? みなさんはどのようにされていますか?

  • 【Excel_VBA】オブジェクト名の変数

    ExcelVBA(2007)でシートのオブジェクト名を変数で回したく、下記コードを用いたのですがエラーが出現します。 【コード】 Dim i As Integer For i = 1 To 10 Sheet & i.Activate Next i 【エラー内容】 コンパイルエラー: 修正候補:式 この場合、どのような方法を用いたらシートのオブジェクト名を変数でうまく回すことができるのか、ご教授いただければ助かります。 よろしくお願いします。

  • オブジェクト名

    複数のWinsockを使用したいです。 オブジェクト名Winsock1~Winsock6があるとします。 例えば Dim i As Integer Dim strWinsock As String For i = 1 to 6 strWinsock = Winsock & i //処理 Next 上記のようなループで文字列strWinsockを、オブジェクト名として使用することはできないのでしょうか? また、もし他の方法があるようでしたら、教えて下さい。

  • ExcelVBA ユーザーフォームのオブジェクト名

    ExcelVBA ユーザーフォームのオブジェクト名について質問です。 Excel2003で、あるユーザーフォームのオブジェクト名を「ユーザーフォーム表示中」とし、 ユーザーフォーム表示中.Showで表示するように記述しました。 何度かテストを済ませ、他のプログラムも含めて完成したと思ったのですが、他のPCでエラー報告があり、コードを確認したところ、なぜか、ユーザーフォーム表示.Show(中の字が消えている)になっていました。 もちろん誰かが記述を変更することは考えられません。 以前、自分のPC内でも同じようなことがあり、いくら原因を探しても見つからず、ユーザーフォームのオブジェクト名を削除された記述に合わせて対処したことがあります。 これは何が原因なのでしょうか。 文字数制限か何かあるのでしょうか。

  • javascript 変数名の連結をしたい

    javascriptで、ある同じ処理をいくつも書くのですが いくつも同じものを書かず、for等で繰り返させたいのです。 また、その際に変数名をばらばらにしたいのですが そのやり方がいまひとつ良く分かりません。 //同じ処理を繰り返さず・・・ area1_flagA = 1 area1_flagB = 1 area1_flagC = 1 area1_flagD = 1 //繰り返し処理で var area_array = [A,B,C,D]; for (var i in area_array){  area1_flag+i(←連結したいができない) = 1 } ※実際はもう少し複雑な処理になります そこで、変数名に変数名を連結させようとしたのですが うまくいきませんでした。 どうすれば、上記のような 繰り返し処理を施すことが可能でしょうか。

  • Javaでフォームのオブジェクトをどのように記述するか

    こんにちは。いつもお世話になっています。 現在ポップアップウィンドウを用いたWEBページを作成し、その機能をカスタムタグによって再現するという作業をしています。 mainWinからsubWinを開き、sabWinからmainWinに表示された画像をjavascriptで変化させるというものです。 まず ラジオボックスがチェックされているかなどを調べる for(i=0; i<document.forms[name].elements[form_ele].length; i++) { if(document.forms[form_name].elements[form_ele][i].checked) break; } (form_nameはフォーム名form_eleは要素名でこの関数呼び出し時に引数で渡しています) などの処理があり、その後画像変更を行います。 基本はimageに image = document.forms[form_name].elements[form_ele][i].value; でフォームで選択した画像名を渡し window.opener.document.getElementById('ID').src=image; (IdのIDは変更場所を示しています) によって画像を変更しています。 現在window.opener~のところを <castom tag:カスタムタグ名 mode="getElementById('ID').src" value="image"/> といったように書き換えるタグは単純ですので可能でしたが form_nameやform_eleもカスタムタグのところで要素として(?)渡し、 (<casom tag:カスタムタグ名 mode="getElementById('ID').src" value="image" name="form_name" elements="form_ele"/>といったふうに) チェック済み判定部分などすべてカスタムタグで表記できないかと考えています。 しかしforms[form_name]やwindow.opener等のオブジェクト名(?)はどのようにすればjavaが理解し、処理してくれるのでしょうか? (getParameterなどでキャッチすればいいのでしょうか?ただ名前だけキャッチしても処理させるにはどうするのかわかりません・・・) またこのようなことは不可能でしょうか? よろしくお願いします。

  • [delphi] 変数を利用してコンポーネント名指定したいのですが、可能でしょうか?

    表題の件、どなたか教えてください。 「可能」か「不可能」かの情報や代替案でもありがたいです。 ※delphi6 enterprise版を使用しています。 質問 コンポーネント名の指定に変数は使えるのでしょうか? 例えば、labelコンポーネントを複数設置しそのlabel名の末尾を数字にする(label1,2,3・・・)。何かの処理の際に、for文で変数を送り(i=1,2,3・・・)、label名+変数.captionなどという形で指定することはできるでしょうか? 例 ラベル名 label1 label2 label3 を設置 ボタンクリック時などに、 var i : integer; for i := 1 to 3 do begin   label(i).caption := inttostr(i) ; end; よろしくお願いします。

  • オブジェクト型の変数にフォームを入れたい

    VBAです。アクセスです。 Sub test2() Dim obj As AccessObject Dim f As Form For Each obj In CurrentProject.AllForms Set f = obj.Name Debug.Print f.Name 色々操作するコード Next End Sub このコードがうまく行かない理由がわからないのです。 Set f = obj.Nameの.Nameで、 「型が一致しません。」のエラーになります。 しかし、Set f = objにすると、 実行時エラー13になります。 オブジェクト型の変数にsetでフォームの名前を入れて、 その後いろいろ操作させるにはどのようにすればよろしいでしょうか?

専門家に質問してみよう