เพิ่ม Combobox ใน Datagridview
เพื่อสามารถที่จะแก้ไขได้ง่ายและข้อมูลถูกต้อง ป้องกัน User กรอกข้อมูลผิดพลาด
โค้ดตัวอย่างที่ 1
เราต้องทำการอินสแตนท์ Class dgvCob ก่อนด้วยโค้ดนี้
DataGridViewComboBoxColumn ColumnCombo = new DataGridViewComboBoxColumn();
ต่อไปเรานำไปใช้ใน DataGridView
// Combobox Selected DataTable dtPri = new DataTable("DDTPRI"); dtPri.Columns.Add("SiteID", typeof(String)); // ประเภท int จะใช้ typeof(Int32)// siteID คือฟิวด์ที่เราต้องการจะให้แสดง Cob dtPri.Rows.Add("GB"); dtPri.Rows.Add("GR"); dtPri.Rows.Add("JC"); dtPri.Rows.Add("JB"); ColumnCombo = null; ColumnCombo = new DataGridViewComboBoxColumn(); ColumnCombo.Name = "SiteID"; ColumnCombo.DataPropertyName = "SiteID"; ColumnCombo.HeaderText = "SiteID"; //ColumnCombo.ReadOnly = false; ColumnCombo.DataSource = dtPri; // จะ Source DtPri ที่เราเพิ่มไว้มา mapping กัน ColumnCombo.DisplayMember = "SiteID"; ColumnCombo.ValueMember = "SiteID"; ColumnCombo.Width = 120; ColumnCombo.DropDownWidth = 120; ColumnCombo.MaxDropDownItems = 10; ColumnCombo.SortMode = DataGridViewColumnSortMode.NotSortable; ColumnCombo.DefaultCellStyle.BackColor = Color.AntiqueWhite; ColumnCombo.HeaderCell.Style.BackColor = Color.AntiqueWhite; this.dgvUserMap.Columns.Add(ColumnCombo);
โค้ดตัวอย่างที่ 2
// Combobox Selected DataTable dtPri = new DataTable("DDTPRI"); dtPri.Columns.Add("SiteID", typeof(Int32)); dtPri.Columns.Add("SiteName",typeof(String)); DataRow drDDT = dtPri.NewRow(); drDDT[0] = 1; drDDT[1] = "Ubonratchatani"; dtPri.Rows.Add(drDDT); drDDT = null; drDDT = dtPri.NewRow(); drDDT[0] = 2; drDDT[1] = "Rayong"; dtPri.Rows.Add(drDDT); drDDT = null; drDDT = dtPri.NewRow(); drDDT[0] = 3; drDDT[1] = "Bangkok"; dtPri.Rows.Add(drDDT); drDDT = null; drDDT = dtPri.NewRow(); drDDT[0] = 4; drDDT[1] = "Chonburi"; dtPri.Rows.Add(drDDT); ColumnCombo = null; ColumnCombo = new DataGridViewComboBoxColumn(); ColumnCombo.Name = "SiteID"; ColumnCombo.DataPropertyName = "SiteID"; ColumnCombo.HeaderText = "SiteID"; //ColumnCombo.ReadOnly = false; ColumnCombo.DataSource = dtPri; ColumnCombo.DisplayMember = "SiteName"; ColumnCombo.ValueMember = "SiteID"; ColumnCombo.Width = 120; ColumnCombo.DropDownWidth = 120; ColumnCombo.MaxDropDownItems = 10; ColumnCombo.SortMode = DataGridViewColumnSortMode.NotSortable; ColumnCombo.DefaultCellStyle.BackColor = Color.AntiqueWhite; ColumnCombo.HeaderCell.Style.BackColor = Color.AntiqueWhite; this.dgvUserMap.Columns.Add(ColumnCombo);
เมื่อลองรันดูจะแสดง Combobox ในฟิวด์ที่เราต้องการแล้วครับ
โค้ดตัวอย่างที่ 3 add to Combobox ธรรมดา
DataTable dtPri = new DataTable("Log"); dtPri.Columns.Add("id", typeof(String)); dtPri.Columns.Add("Name", typeof(String)); DataRow drDDT = dtPri.NewRow(); drDDT[0] = "DBNAME"; drDDT[1] = "DBNAME"; dtPri.Rows.Add(drDDT); drDDT = null; drDDT = dtPri.NewRow(); drDDT[0] = "CONSTRDB"; drDDT[1] = "CONSTRDB"; dtPri.Rows.Add(drDDT); this.comboBox1.DataSource = dtPri; this.comboBox1.ValueMember = "id"; this.comboBox1.DisplayMember = "Name"; this.comboBox1.SelectedIndex = 0;