SEの転職活動で使うべきサイト・エージェント 目指せ年収アップ
SEの転職活動で使うべきサイト・エージェント 目指せ年収アップ
東南アジアをバックパッカーしながら転職活動をした記録
東南アジアをバックパッカーしながら転職活動をした記録
7年目で初の転職活動 2カ月で内定獲得した記録
7年目で初の転職活動 2カ月で内定獲得した記録
おすすめのプログラミングスクール めざせ就職・年収アップ!
おすすめのプログラミングスクール めざせ就職・年収アップ!
メンズクリア2年通い放題入会! その後のヒゲ状況(不定期更新)
メンズクリア2年通い放題入会! その後のヒゲ状況(不定期更新)
ブログ開始3年が経った月収が1万超えてた!
ブログ開始3年が経った月収が1万超えてた!
プログラミング独学・スクール・就職(目次)
プログラミング独学・スクール・就職(目次)
previous arrowprevious arrow
next arrownext arrow
 
Shadow
C#/VB.net

DataGridviewでComboboxのSelectedValueの値を設定する

今回は「DatagridViewにあるComboboxのSelectedValueの設定」です。

普通のコンボボックスでSelectedValueを設定するのはプロパティからすぐに選択できます。

が、…データグリッドビューでDataTableをバインド後、どうすればいいのか困ったことがありました。

実装中にあれば良いなと思ったので、ここに載せておきます。

実際に作成したファイルはこちらからダウンロードできます。

DataGridviewでComboboxの設定方法

どんな書き方かというと。

DatagridView[column, row].Value = intSelectedValue;

これだけです!
初めはずっとデータグリッドビューのSelected~プロパティを探していて、見つからず困っていました…
以外に簡単でしたね^^;

そもそもですが、データグリッドビューのコンボボックスには、

SelectedValueは存在せず、ValueMemberの値になるのです。

ComboboxのValueMemberとは?

そもそもですが、データグリッドビューのコンボボックスには、

コンボボックスはDisplayMemberとValueMemberで構成されています。
簡単に説明するとDisplayMemberは表示用、ValueMemberは内部管理のコードです。
例えば、下のような月曜~金曜まで選べるコンボボックスがあったとします。

 

このコンボボックスは以下のようにな構成です。
ValueMember DisplayMember
1 月曜日
2 火曜日
3 水曜日
4 木曜日
5 金曜日

サンプルソース(DataGridviewのComboboxへセット)

試しにこんなアプリを作ってみました。
ボタンを押すと、データグリッドビューのコンボボックスの

 

ValueMember(SelectedValue)へ反映

 

①フォームロード時

フォームロード時にデータグリッドビューのコンボボックスへ

ValueMemberとDisplayMemberをセットします。

private void Form1_Load(object sender, EventArgs e)
{

    DataTable dt = new DataTable();
    DataRow dr;

    //テーブルに列追加
    dt.Columns.Add("コード");
    dt.Columns.Add("曜日");

    //テーブルに曜日をセット
    dr = dt.NewRow();
    dr["コード"] = "1";
    dr["曜日"] = "月曜日";
    dt.Rows.Add(dr);

    dr = dt.NewRow();
    dr["コード"] = "2";
    dr["曜日"] = "火曜日";
    dt.Rows.Add(dr);

    dr = dt.NewRow();
    dr["コード"] = "3";
    dr["曜日"] = "水曜日";
    dt.Rows.Add(dr);

    dr = dt.NewRow();
    dr["コード"] = "4";
    dr["曜日"] = "木曜日";
    dt.Rows.Add(dr);

    dr = dt.NewRow();
    dr["コード"] = "5";
    dr["曜日"] = "金曜日";
    dt.Rows.Add(dr);
    
    //曜日カラムをデータグリッドビューにセット
    DataGridViewComboBoxColumn colDate = new DataGridViewComboBoxColumn();
    colDate.DataPropertyName = "Date";
    colDate.DataSource = dt;
    colDate.ValueMember = "コード";
    colDate.DisplayMember = "曜日";
    dataGridView1.Columns.Insert(0, colDate);
    colDate.Name = "曜日";
}

②ボタン押下時

ボタンをクリックすると、コンボボックスのValueMember(SelectedValue)へ

テキストボックスに入力した数字を反映します。

private void button1_Click(object sender, EventArgs e)
{
    //テキストボックスの値をコンボボックスにセット
    dataGridView1[0, 0].Value = textBox1.Text;
}

動かしてみます。

ボタンクリック前

テキストボックス3を入力して、ボタンクリック後

ValueMember:3に対応した、

DisplayMember:水曜日が表示されましたね。

今回はここまでです。

 

こんなWindowsフォームアプリを作ってみたので、みて下さい。

C#アプリ開発 メールお知らせアプリ 開発案件の経験は2案件ほどで、ほとんど経験ありません。 そんな私が独学でプログラミングの勉強をしてきました。 そこで...

 

おすすめのプログラミングスクール めざせ就職・年収アップ! プログラミングを独学でされている人は意外と多いです。 ただ、プログラミングの独学は簡単にはいきません。 自分だけの力...
プログラミングの独学とはエラーとの闘い プログラミングを勉強し始めた初心者の方はつまづくことが多いと思います。 私も最初はエラーが出るたびにいちいちビビッて、意味...
・DataGridView と DataTable と Combobox(コンボボックス)
http://http://blog.syo-ko.com/?eid=524
・DataGridView内のComboBox – QA@IT
http://qa.atmarkit.co.jp/q/281
ABOUT ME
LooseCarrot
LooseCarrot
ブログ運営をしているLooseCarrotです。 興味のあることにトライして発信していきます! プロフィール

関連している記事