標籤:datagridview style blog color os 使用 ar strong for
DataGridViewComboBoxColumn pCombo; private void Teaching_Add_Load(object sender, EventArgs e) { MyDBase DB = new MyDBase(DBUser.sserver,DBUser.DBName, DBUser.suser, DBUser.spasswd); DataSet DS= DB.GetRecordset("select * from view_teach_tmp"); dataGridView1.DataSource = DS.Tables[0]; pCombo = new DataGridViewComboBoxColumn(); SqlDataReader RD = DB.DBDataReader("select * from expert"); while (RD.Read()) { string st = RD[0].ToString().Trim() + "." + RD[1].ToString().Trim(); pCombo.Items.Add(st); } RD.Close(); dataGridView1.Columns.Add(pCombo); dataGridView1.Columns[7].HeaderText = "請選擇專家"; DB.DBClose(); }
說明:
1.dataGridView中添加comboBox控制項利用初始化現成的類DataGridViewComboBoxColumn,本例先把從view_teach_tmp中讀出的資料加到dataGridView1中,然後把初始化的comboBox控制項pCombo加到最後一列,並給標題HeaderText命名。
2.pCombo控制項中顯示的是expert表中的“編碼.專家姓名”,若要擷取編碼,可用下面的函數GetENo。
string GetENo(string st) { int n, i; string s = ""; n = st.Length; for (i = 0; i < n; i++) { if (st.Substring(i, 1) == ".") return s; s = s + st.Substring(i, 1); } return "-1"; }
3.調用函數GetENo:
string ENo;
for (int i = 0; i < n; i++) { if (dataGridView1.Rows[i].Cells[7].Value == null) { MessageBox.Show("請選擇專家", "錯誤提示", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } ENo = dataGridView1.Rows[i].Cells[7].Value.ToString(); ENo = GetENo(ENo); }
特別說明:
要判斷pCombo控制項是否全都選值,要使用if (dataGridView1.Rows[i].Cells[7].Value == null),起初使用if (dataGridView1.Rows[i].Cells[7].Value.Tostring().Trim().Length==0)語句,直接報錯,打死都找不出問題所在。
C# dataGridView控制項中加入comboBox控制項及注意事項