DataGridView中的DataGridViewComboBoxColumn使用淺析


小項目的感悟學習一下:

窗體的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;//拿到選擇后的值

}

時間有限,寫的有些匆忙!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM