|
■No43064 (D.A さん) に返信
> 表示後にComboBoxColumnにて置き換えはできましたが、コンボボックスで表示する理由もないので、
DataGridViewComboBoxColumn 列の DisplayStyle を変更するだけでは駄目でしょうか?
> 通常のTextBoxColumnではどのような処理を行えばよいのでしょうか?
DataSet で、社員マスタ(ShainCD, BushoCD)と部署マスタ(BushoCD, BushoName)を
リレーションし、それをバインドするという手法もあります。
// 型付き DataSet なら、下記の設定をデザイナ上で行うことができます。
DataSet ds = new DataSet();
private void Form1_Load(object sender, EventArgs e)
{
DataTable 社員マスタ = ds.Tables.Add("社員マスタ");
社員マスタ.Columns.Add("ShainCD");
社員マスタ.Columns.Add("BushoCD");
DataTable 部署マスタ = ds.Tables.Add("部署マスタ");
部署マスタ.Columns.Add("BushoCD");
部署マスタ.Columns.Add("BushoName");
社員マスタ.PrimaryKey = new DataColumn[] { 社員マスタ.Columns["ShainCD"] };
部署マスタ.PrimaryKey = new DataColumn[] { 部署マスタ.Columns["BushoCD"] };
社員マスタ.Rows.Add("A01", "B01");
社員マスタ.Rows.Add("A02", "B01");
社員マスタ.Rows.Add("A03", "B02");
社員マスタ.Rows.Add("A04", "B03");
部署マスタ.Rows.Add("B01", "営業");
部署マスタ.Rows.Add("B02", "総務");
部署マスタ.Rows.Add("B03", "人事");
ds.Relations.Add(
部署マスタ.Columns["BushoCD"],
社員マスタ.Columns["BushoCD"]
);
社員マスタ.Columns.Add("部署名").Expression = "Parent.BushoName";
dataGridView1.AutoGenerateColumns = true;
dataGridView1.DataSource = 社員マスタ;
}
|