C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[3]: コントロールを変数に入れる。


(過去ログ 122 を表示中)

[トピック内 4 記事 (1 - 4 表示)]  << 0 >>

■72814 / inTopicNo.1)  コントロールを変数に入れる。
  
□投稿者/ よしむら (26回)-(2014/07/20(Sun) 14:06:47)

分類:[C#] 

テキストボックスを変数に入れることはできますか?

値が入っていないテキストボックスにフォーカスをする関数を作りたいと思っています。

string[] テキストボックス;
テキストボックス = new string[] {textBox1.Text, textBox2.Text, textBox3.Text ,textBox4.Text,textBox5.Text};
関数(テキストボックス);



private void 関数(テキストボックス)
{
    foreach(string n in テキストボックス)
    { 
        if(n=="")
        {
           n.Focus();//ここがわからない。
        }
    }   

}


上記のn.Focus();をどう書けばいいかわかりません。nは既にコントロールではなく、文字列型変数なのでできるわけないのはわかっているのですが、デリゲートにコントロールを入れることもできないし困っています。
よろしくおねがいします。


引用返信 編集キー/
■72815 / inTopicNo.2)  Re[1]: コントロールを変数に入れる。
□投稿者/ 魔界の仮面弁士 (52回)-(2014/07/20(Sun) 15:48:24)
No72814 (よしむら さん) に返信
> テキストボックスを変数に入れることはできますか?

できます。

というよりも、普段使っている
 this.textBox1.Text = "ABC";
という表現も実は変数にすぎず、フォーム上に
 private TextBox textBox1;
のような変数がデザイナによって自動的に生成され、そこに
 this.textBox1 = new TextBox();
 this.textBox1.Name = "textBox1";
   :
のような代入操作が行われた結果です。


> テキストボックス = new string[] {textBox1.Text, textBox2.Text, textBox3.Text ,textBox4.Text,textBox5.Text};
テキストボックスそのものを管理したいのであれば、
 string[] textBoxes = new string[] {textBox1.Text, textBox2.Text, textBox3.Text};
ではなく、
 TextBox[] textBoxes = new TextBox[] {textBox1, textBox2, textBox3};
の方が良いでしょう。
この代入操作は、InitializeComponent の呼び出し後(Load イベントなど)で行ってください。


使う時はこんな感じ。
 foreach(var txt in textBoxes) {
  if(txt.Text == "") {
   txt.Focus();
   break;
  }
 }
引用返信 編集キー/
■72816 / inTopicNo.3)  Re[2]: コントロールを変数に入れる。
□投稿者/ よしむら (27回)-(2014/07/20(Sun) 19:52:09)
できました。
いつもありがとうございます。








No72815 (魔界の仮面弁士 さん) に返信
> ■No72814 (よしむら さん) に返信
>>テキストボックスを変数に入れることはできますか?
>
> できます。
>
> というよりも、普段使っている
>  this.textBox1.Text = "ABC";
> という表現も実は変数にすぎず、フォーム上に
>  private TextBox textBox1;
> のような変数がデザイナによって自動的に生成され、そこに
>  this.textBox1 = new TextBox();
>  this.textBox1.Name = "textBox1";
>    :
> のような代入操作が行われた結果です。
>
>
>>テキストボックス = new string[] {textBox1.Text, textBox2.Text, textBox3.Text ,textBox4.Text,textBox5.Text};
> テキストボックスそのものを管理したいのであれば、
>  string[] textBoxes = new string[] {textBox1.Text, textBox2.Text, textBox3.Text};
> ではなく、
>  TextBox[] textBoxes = new TextBox[] {textBox1, textBox2, textBox3};
> の方が良いでしょう。
> この代入操作は、InitializeComponent の呼び出し後(Load イベントなど)で行ってください。
>
>
> 使う時はこんな感じ。
>  foreach(var txt in textBoxes) {
>   if(txt.Text == "") {
>    txt.Focus();
>    break;
>   }
>  }
引用返信 編集キー/
■72817 / inTopicNo.4)  Re[3]: コントロールを変数に入れる。
□投稿者/ よしむら (28回)-(2014/07/20(Sun) 19:52:43)
解決済みつけ忘れました。
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -