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

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

ログ内検索
  • キーワードを複数指定する場合は 半角スペース で区切ってください。
  • 検索条件は、(AND)=[A かつ B] (OR)=[A または B] となっています。
  • [返信]をクリックすると返信ページへ移動します。
キーワード/ 検索条件 /
検索範囲/ 強調表示/ ON (自動リンクOFF)
結果表示件数/ 記事No検索/ ON
大文字と小文字を区別する

No.56371 の関連記事表示

<< 0 >>
■56371  コントロールの取得順番
□投稿者/ ぽん -(2011/01/12(Wed) 09:50:59)

    分類:[.NET 全般] 

    現在フォームの中にグループボックスがありまして、その中に4つのコンボボックスと4つのテキストボックスが存在しています。
    そこでforeach文を用いて、グループボックスからコンボボックスのみを取り出し、取り出したコンボボックスのSelectedValueプロパティを
    取得したいと思っています。
    以下でSelectedValueプロパティの値を取得出来たのですが、少し問題がありまして質問させていただきました。

    DataRow dRow;
    foreach (Control item in groupBox1.Controls)
    {
    ComboBox comboBox = item as ComboBox;
    if (comboBox != null)
    {
    dRow["player_id"] = comboBox.SelectedValue;
    // 以下略
    }
    }

    4つのコンボボックスはそれぞれDBから名前をバインドしております。(DisplayMemberに名前)(ValueMemberにID)
    その際にどのような順番でコンボボックスのSelectedValueプロパティの値が取得出来るのでしょうか?

    私がデバッグしている時はcomboBox1の後にcomboBox3のIDを取ったりしているので、
    comboBox1、2、3、4と順番にSelectedValueの値を取得したいと思っております。

    また、その順番を変更するようなことは可能なのでしょうか?
    よろしくお願い致します。
親記事 /過去ログ94より / 関連記事表示
削除チェック/

■56372  Re[1]: コントロールの取得順番
□投稿者/ マサヤ -(2011/01/12(Wed) 10:37:21)
記事No.56371 のレス /過去ログ94より / 関連記事表示
削除チェック/

■56375  Re[2]: コントロールの取得順番
□投稿者/ ぽん -(2011/01/12(Wed) 12:06:41)
    No56372 (マサヤ さん) に返信

    マサヤさんいつもお世話になっております。

    > DataTableなどに取得した後にソートしてはいかがでしょうか?
    > http://www.atmarkit.co.jp/fdotnet/dotnettips/363dtsort/dtsort.html
    やりたいことはcomboBox1のSelectedValueを取得、comboBox2SelectedValueを取得
    というように1〜4まであるcomboBoxのSelectedValueを順番に取得したいです。

    こういうことは出来るのでしょうか?
    データテーブルのデータの中身をソートしても意味がないような気がするのですが、気のせいでしょうか?

    > また、現状のソースをみますと、最終のコンボボックスの値しかDataRowに入りませんが、問題ないのでしょうか?
    ループ内でNewRow();を行っているので問題ないと思います。

    分かりにくくてすみません(TT)
記事No.56371 のレス /過去ログ94より / 関連記事表示
削除チェック/

■56376  Re[3]: コントロールの取得順番
□投稿者/ 魔界の仮面弁士 -(2011/01/12(Wed) 12:16:11)
    No56375 (ぽん さん) に返信
    >>> その際にどのような順番でコンボボックスのSelectedValueプロパティの値が取得出来るのでしょうか?
    保証はされていませんが、groupBox1.Controls に Add/AddRange された順といった所では無いかと。

    順番が重要なら、Load イベント等であらかじめ List<ComboBox> や 配列などで管理しておき、
    それを使って処理した方が良いかもしれません。


    > やりたいことはcomboBox1のSelectedValueを取得、comboBox2SelectedValueを取得
    > というように1〜4まであるcomboBoxのSelectedValueを順番に取得したいです。
    名前が決まっているのなら、foreach ではなく for ループに変更して、
    groupBox1.Controls のインデクサあるいは Find メソッドを使っては如何でしょう。
記事No.56371 のレス /過去ログ94より / 関連記事表示
削除チェック/

■56377  Re[1]: コントロールの取得順番
□投稿者/ shu -(2011/01/12(Wed) 12:28:23)
    No56371 (ぽん さん) に返信

    (1)反復利用することがなければ4つ程度ならそのまま書いてしまう。
    (2)Dictionary<String, ComboBox>を使って項目名とComboBoxを対応付けてしまう。
    (3)ComboBoxのTagがあいていれば、Tagに項目名を入れておく。
    などもどうでしょう?
記事No.56371 のレス /過去ログ94より / 関連記事表示
削除チェック/

■56378  Re[2]: コントロールの取得順番
□投稿者/ マサヤ -(2011/01/12(Wed) 12:33:46)
    もしかして
    >4つのコンボボックスはそれぞれDBから名前をバインドしております。
    ここでSQLをorder byとかしたらOKとかはないですよね?
記事No.56371 のレス /過去ログ94より / 関連記事表示
削除チェック/

■56381  Re[3]: コントロールの取得順番
□投稿者/ todo -(2011/01/12(Wed) 12:44:43)
記事No.56371 のレス /過去ログ94より / 関連記事表示
削除チェック/

■56382  Re[4]: コントロールの取得順番
□投稿者/ ぽん -(2011/01/12(Wed) 13:07:36)
    皆さまこんなにも返信ありがとうございます<(_ _)>
    返信が追い付かず、申し訳ありませんが皆さまにまとめて返信する形になってしまいました。

    取りあえずzオーダーを変更して順番に取得出来ました。
    todo様ありがとうございます。

    またマサヤ様、魔界の仮面弁士様、shu様。
    アドバイス頂きありがとうございました。

    皆さまの方法でも確認したいと思います。

    また質問した際にはよろしくお願い致します。






記事No.56371 のレス / END /過去ログ94より / 関連記事表示
削除チェック/



<< 0 >>

パスワード/

- Child Tree -