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

わんくま同盟

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

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

■102832 / 親階層)  DataGridViewでコンボボックスを連動させたい
□投稿者/ Y.M (16回)-(2024/01/13(Sat) 19:51:02)

分類:[C#] 


言語:VS2022 C#
フレームワーク:Framework 4.7.2
OS:Windows10
WinForms

DataGridViewで1列目のコンボボックスに、ひらがなを選択したら、
2列目のコンボボックスで、「あいうえお」「かきくけこ」…と選択できて
1列目のコンボボックスに、カタカナを選択したら、
2列目のコンボボックスで、「アイウエオ」「カキクケコ」…と選択できるようにしたくて
下記のようなソースを書きました。

DataGridViewComboBoxColumn dgvCombo3 = new DataGridViewComboBoxColumn();
DataGridViewComboBoxColumn dgvCombo4 = new DataGridViewComboBoxColumn();


private void Form1_Load(object sender, EventArgs e)
{
      DataTable dtTest = new DataTable();
    DataRow dr;
    dtTest.Columns.Add("Division_ID");
    dtTest.Columns.Add("Division_NM");

    dr = dtTest.NewRow();
    dr["Division_ID"] = 1;
    dr["Division_NM"] = "ひらがな";
    dtTest.Rows.Add(dr);

    dr = dtTest.NewRow();
    dr["Division_ID"] = 2;
    dr["Division_NM"] = "カタカナ";
    dtTest.Rows.Add(dr);

    Column12.DataSource = dtTest;
    Column12.DisplayMember = "Division_NM";
    Column12.ValueMember = "Division_ID";

    }


private void dataGridView2_CellClick(object sender, DataGridViewCellEventArgs e)
{
if (e.ColumnIndex == 2)
{
if ((dataGridView2.Rows[e.RowIndex].Cells["Column12"].Value == null) ||(string.IsNullOrEmpty(dataGridView2.Rows[e.RowIndex].Cells["Column12"].Value.ToString())))
{
}
else
{
DataTable dtTest = new DataTable();
DataRow dr;
dtTest.Columns.Add("Division_ID");
dtTest.Columns.Add("Division_NM");

dr = dtTest.NewRow();

if (dataGridView2.Rows[e.RowIndex].Cells["Column12"].Value.ToString() == "1")
{
dr["Division_ID"] = 1;
dr["Division_NM"] = "あいうえお";
dtTest.Rows.Add(dr);

dr = dtTest.NewRow();
dr["Division_ID"] = 2;
dr["Division_NM"] = "かきくけこ";
dtTest.Rows.Add(dr);

dr = dtTest.NewRow();
dr["Division_ID"] = 3;
dr["Division_NM"] = "さしすせそ";
dtTest.Rows.Add(dr);

}
else
{
dr["Division_ID"] = 1;
dr["Division_NM"] = "アイウエオ";
dtTest.Rows.Add(dr);

dr = dtTest.NewRow();
dr["Division_ID"] = 2;
dr["Division_NM"] = "カキクケコ";
dtTest.Rows.Add(dr);

dr = dtTest.NewRow();
dr["Division_ID"] = 3;
dr["Division_NM"] = "サシスセソ";
dtTest.Rows.Add(dr);

}

Column13.DataSource = dtTest;
Column13.DisplayMember = "Division_NM";
Column13.ValueMember = "Division_ID";

}

}
}

実行すると、1行目の1列目でひらがなを選択すると2列目の表示が「あいうえお」「かきくけこ」になり、
2行目の1列目でカタカナを選択し、2列目の表示が「アイウエオ」「カキクケコ」となりますが、
3行目になると、1行目と2行目の2列目がカタカナ表示になってしまいます。

それを、1行目はひらがなで、2行目はカタカナが選択された状態にしたいのですがやり方が解らず困っています。


どなたかゆう認識者の方よろしくお願いします




編集キー/

前の記事(元になった記事) 次の記事(この記事の返信)
親記事 →Re[1]: DataGridViewでコンボボックスを連動させたい /WebSurfer
→Re[1]: DataGridViewでコンボボックスを連動させたい /kiku
 
上記関連ツリー

DataGridViewでコンボボックスを連動させたい / Y.M (24/01/13(Sat) 19:51) #102832 ←Now
Re[1]: DataGridViewでコンボボックスを連動させたい / WebSurfer (24/01/17(Wed) 09:15) #102859
Re[1]: DataGridViewでコンボボックスを連動させたい / kiku (24/01/17(Wed) 10:46) #102860

上記ツリーを一括表示 / 上記ツリーをトピック表示
 
上記の記事へ返信