項目中常遇到:DataGridView 綁定主表,某列為外鍵 ID,需顯示對應的名稱(如客戶級別 ID → 級別說明)。
DGV)綁定客戶表 kh;ComboBox(名 LB_CB)綁定類別表 lb,DisplayMember="lbmc",ValueMember="id"。ColumnType 改為 DataGridViewComboBoxColumn,DisplayStyle 設為 ComboBox。string sql = "select * from lb"; SqlDataAdapter DA = new SqlDataAdapter(sql, Constr); DataTable DT = new DataTable(); ((DataGridViewComboBoxColumn)DGV.Columns[1]).DataSource = DA.Fill(DT); ((DataGridViewComboBoxColumn)DGV.Columns[1]).DisplayMember = "lbmc"; ((DataGridViewComboBoxColumn)DGV.Columns[1]).ValueMember = "id";
private void DGV_CellClick(object sender, DataGridViewCellEventArgs e) {
if (e.RowIndex > -1) {
id = DGV.Rows[e.RowIndex].Cells[0].Value.ToString();
LB_CB.SelectedValue = DGV.Rows[e.RowIndex].Cells[1].Value;
gs_TB.Text = DGV.Rows[e.RowIndex].Cells[2].Value.ToString();
sj_TB.Text = DGV.Rows[e.RowIndex].Cells[3].Value.ToString();
yx_TB.Text = DGV.Rows[e.RowIndex].Cells[4].Value.ToString();
fzr_TB.Text = DGV.Rows[e.RowIndex].Cells[5].Value.ToString();
}
}
關鍵點:將 Grid 該列轉為 ComboBox 列,並綁定相同的查找表數據源,即可實現 ID 與名稱的自動轉換顯示。