小項目的感悟學習一下:
窗體的Load事件:
private void Form1_Load(object sender, EventArgs e)
{
DataGridViewTextBoxColumn column = new DataGridViewTextBoxColumn();
column.Name = "ID";
column.DataPropertyName = "id";//對應數據源的字段
column.HeaderText = "ID";
column.Width = 80;
this.dataGridView1.Columns.Add(column);
List<string> ListData = new List<string> { "張三", "里斯", "王六" };
DataGridViewComboBoxColumn column1 = new DataGridViewComboBoxColumn();
column1.Name = "Name";
column1.DataPropertyName = "Name";//對應數據源的字段
column1.HeaderText = "姓名";
column1.Width = 80;
this.dataGridView1.Columns.Add(column1);
column1.DataSource = ListData; //這里需要設置一下combox的itemsource,以便combox根據數據庫中對應的值自動顯示信息
//column1.DisplayMember = "Name";
//column1.ValueMember = "Name";
//綁定數據源
dataGridView1.DataSource = CreateTable();
}
private DataTable CreateTable()
{
DataTable dt = new DataTable();
DataColumn column = new DataColumn();
column.DataType = System.Type.GetType("System.Int32");
column.ColumnName = "id";
dt.Columns.Add(column);
column = new DataColumn();
column.DataType = Type.GetType("System.String");
column.ColumnName = "Name";
dt.Columns.Add(column);
DataRow row = dt.NewRow();
row["id"] = 0;
row["Name"] = "張三";
dt.Rows.Add(row);
return dt;
}
當想修改Combox列的數據時,或是想通過Combox的改變做文章的要用到dataGridView1_EditingControlShowing這個事件,即編輯dataGriview中的數據就會觸發該事件
private void dataGridView1_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
{
ComboBox combo = e.Control as ComboBox;
if (combo != null)
{
combo.SelectedIndexChanged +=
new EventHandler(ComboBox_SelectedIndexChanged);
}
}
private void ComboBox_SelectedIndexChanged(object sender, EventArgs e)
{
ComboBox combo = sender as ComboBox;
string selectedItem = combo.Text;//拿到選擇后的值
}
時間有限,寫的有些匆忙!