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

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

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

Re[3]: 複数のコントロールに配列の内容を設定したいのですが


(過去ログ 94 を表示中)

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

■56120 / inTopicNo.1)  複数のコントロールに配列の内容を設定したいのですが
  
□投稿者/ 裕猫 (206回)-(2010/12/28(Tue) 16:09:50)

分類:[C#] 

開発環境
OS: WindowsXP SP3
言語: VisualStudio2008 C#

いつもお世話になっています。
以前に同じ内容をコントロールに設定する方法を教えていただきました。同じようなことなのですが
form1に配置したテキストボックス複数個に配列の内容を割り当てたいのですが、
textBox27.Text = MKST.EM10OLD[40].ToString();
textBox28.Text = MKST.EM10OLD[41].ToString();
textBox29.Text = MKST.EM10OLD[42].ToString();
textBox30.Text = MKST.EM10OLD[43].ToString();
textBox31.Text = MKST.EM10OLD[44].ToString();
textBox32.Text = MKST.EM10OLD[45].ToString();
textBox33.Text = MKST.EM10OLD[46].ToString();
textBox34.Text = MKST.EM10OLD[47].ToString();
textBox35.Text = MKST.EM10OLD[48].ToString();
textBox36.Text = MKST.EM10OLD[49].ToString();
textBox37.Text = MKST.EM10OLD[50].ToString();
textBox38.Text = MKST.EM10OLD[51].ToString();
textBox39.Text = MKST.EM10OLD[52].ToString();
textBox40.Text = MKST.EM10OLD[53].ToString();
textBox41.Text = MKST.EM10OLD[54].ToString();
textBox42.Text = MKST.EM10OLD[55].ToString();
textBox43.Text = MKST.EM10OLD[56].ToString();
textBox44.Text = MKST.EM10OLD[57].ToString();

for (int CT1 = 27; CT1 < 45; CT1++)
{ textBox(CT1).text = MKST.EM10OLD[CT1 + 13].ToString();}のような感じに書きたいのですが、
textBox(CT1)ではIDがないと言われてしまいます。textBoxの番号をどのように指定したらよいのか
調べてみたのですが、いまいち解答にたどりつけません。ご存知の方アドバイスをください。
お願いいたします。m(_ _)m
引用返信 編集キー/
■56121 / inTopicNo.2)  Re[1]: 複数のコントロールに配列の内容を設定したいのですが
□投稿者/ 魔界の仮面弁士 (2003回)-(2010/12/28(Tue) 16:37:29)
No56120 (裕猫 さん) に返信
> OS: WindowsXP SP3
> 言語: VisualStudio2008 C#
> form1に配置したテキストボックス複数個に配列の内容を割り当てたいのですが、

以下、掲示板に直接書いたコードゆえ、未検証:

// --------- 案1 ----------
foreach( TextBox txt in this.Controls.OfType<TextBox>().Where((c) => c.Name.StartsWith("textBox") )
{
    int index;
    if(int.TryParse(txt.Name.Substring(7), out index) && index >= 27 && index <= 44))
    {
        txt.Text = MKST.EM10OLD[index + 13].ToString();
    }
}

// --------- 案2 ----------
for (int index = 27; index <= 44; index++)
{
    TextBox txt = (TextBox)this.Controls.Find(string.Format("textBox{0}", index), true).First();
    txt.Text = MKST.EM10OLD[index + 13].ToString();
}


// --------- 案3 ----------
for (int index = 27; index <= 44; index++)
{
    TextBox txt = (TextBox)this.Controls[string.Format("textBox{0}", index)];
    txt.Text = MKST.EM10OLD[index + 13].ToString();
}


> textBoxの番号をどのように指定したらよいのか調べてみたのですが、
> いまいち解答にたどりつけません。
http://dobon.net/vb/dotnet/control/findcontrolbyname.html

引用返信 編集キー/
■56132 / inTopicNo.3)  Re[2]: 複数のコントロールに配列の内容を設定したいのですが
□投稿者/ 裕猫 (207回)-(2010/12/28(Tue) 17:42:01)
No56121 (魔界の仮面弁士 さん) に返信
> 以下、掲示板に直接書いたコードゆえ、未検証:
>
> // --------- 案1 ----------
> foreach( TextBox txt in this.Controls.OfType<TextBox>().Where((c) => c.Name.StartsWith("textBox") )
> {
> int index;
> if(int.TryParse(txt.Name.Substring(7), out index) && index >= 27 && index <= 44))
> {
> txt.Text = MKST.EM10OLD[index + 13].ToString();
> }
> }
>
> // --------- 案2 ----------
> for (int index = 27; index <= 44; index++)
> {
> TextBox txt = (TextBox)this.Controls.Find(string.Format("textBox{0}", index), true).First();
> txt.Text = MKST.EM10OLD[index + 13].ToString();
> }
>
>
> // --------- 案3 ----------
> for (int index = 27; index <= 44; index++)
> {
> TextBox txt = (TextBox)this.Controls[string.Format("textBox{0}", index)];
> txt.Text = MKST.EM10OLD[index + 13].ToString();
> }
>
>
>>textBoxの番号をどのように指定したらよいのか調べてみたのですが、
>>いまいち解答にたどりつけません。
> http://dobon.net/vb/dotnet/control/findcontrolbyname.html
返信ありがとうございます。拝見したコードで3番が私的に理解ができましたので、3番のパターンでテストして成功いたしました。
C#はこのあたりが少々やっかいですね。教えていただいたURLは行って見ていたのですが、応用がきかないもので使えませんでした。
おはずかしいです。
ではありがとうございました。またよろしくお願いいたします。
引用返信 編集キー/
■56133 / inTopicNo.4)  Re[3]: 複数のコントロールに配列の内容を設定したいのですが
□投稿者/ 裕猫 (208回)-(2010/12/28(Tue) 17:44:12)
解決つけわすれました。解決です。
解決済み
引用返信 編集キー/


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

このトピックに書きこむ

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

管理者用

- Child Tree -