本文转自:http://www.cnblogs.com/perfect/archive/2008/06/10/1216591.html
usingSystem;
usingSystem.Collections.Generic;
usingSystem.ComponentModel;
usingSystem.Data;
usingSystem.Data.SqlClient;
usingSystem.Drawing;
usingSystem.Text;
usingSystem.Windows.Forms;
namespaceSys
{
publicpartialclassForm3:Form
{
publicForm3()
{
InitializeComponent();
}
privatevoidForm3_Load(objectsender,EventArgse)
{
dataGridView1.AllowUserToAddRows=false;
dataGridView1.AutoGenerateColumns=false;
using(SqlConnectionsqlconn=newSqlConnection("server=.;uid=sa;pwd=sa;database=xx"))
{
stringsql1=@"selectuserid,fullname,a.[description],b.ugroupid
fromusersaleftouterjoinusergroupb
ona.grade=b.ugroupid";
stringsql2="selectdistinctugroupid,[description]fromusergroup";
DataGridViewComboBoxColumndgvComboBoxColumn=dataGridView1.Columns["grade"]asDataGridViewComboBoxColumn;
dgvComboBoxColumn.DataPropertyName="ugroupid";
dgvComboBoxColumn.DataSource=GetTable(sql2).DefaultView;//必须在设置dataGridView1的DataSource的属性前设置
dgvComboBoxColumn.DisplayMember="description";
dgvComboBoxColumn.ValueMember="ugroupid";
dataGridView1.DataSource=GetTable(sql1).DefaultView;//一定要在dgvComboBoxColumn的DataSource后设置
}
}
privateDataTableGetTable(stringsql)
{
using(SqlConnectionsqlconn=newSqlConnection("server=.;uid=sa;pwd=yuling1310;database=smls"))
{
DataTabledt=newDataTable();
SqlDataAdaptersqlda=newSqlDataAdapter(sql,sqlconn);
sqlda.Fill(dt);
returndt;
}
}
}
}
注意事项:
.注意其ValueMember的DataType与DataPropertyName对应的列的DataType要相同,他不会为你做类型转换的。
2.编程设置显示样式时注意一定要在设置DataSource之前设置DataGridViewComboBoxColumn的DataSource等属性。
分享到:
相关推荐
DataGridViewComboBoxColumn comboCol = new DataGridViewComboBoxColumn(); comboCol.DataSource = myDataArray; // 数据源 comboCol.DisplayMember = "DisplayField"; // 显示字段 comboCol.ValueMember = ...
DataGridViewComboBoxColumn comboBoxColumn = new DataGridViewComboBoxColumn(); ``` 2. 设置ComboBox的显示模式,比如是否显示文本、是否允许编辑等。 ```csharp comboBoxColumn.DisplayStyle = ...
DataGridViewComboBoxColumn dataCridCbo = this.dataGridView1.Columns["列名"] as DataGridViewComboBoxColumn; dataCridCbo.DataSource = dataSet.Tables[0]; dataCridCbo.DataPropertyName = "绑定数据的列名"; ...
- DataGridViewComboBoxColumn提供下拉列表选择,可以绑定数据源或手动设置选项。 4. **数据操作** - 数据输入和验证涉及多个事件,如CellValidating和CellValueChanged,用于确保数据的正确性。 - 新行处理涉及...
DataGridViewComboBoxColumn comboBoxColumn = new DataGridViewComboBoxColumn(); comboBoxColumn.HeaderText = "列名"; comboBoxColumn.Name = "ComboBoxColumnName"; comboBoxColumn.DataSource = new string[] {...
1. 创建一个`DataGridViewComboBoxColumn`对象,设置其属性,如`DataPropertyName`(与数据源字段关联)和`DisplayMember`(显示的文本)。 2. 将此`ComboBox`列添加到`DataGridView.Columns`集合中。 3. 设置`...
DataGridViewComboBoxColumn comboBoxColumn = new DataGridViewComboBoxColumn(); comboBoxColumn.DataSource = GetCategoryNames(reader); // 自定义方法,将数据转换为适合ComboBox的数据类型 comboBoxColumn....
然后,可以使用DataGridViewComboBoxColumn类创建新的列,并将其添加到DataGridView中。 ```csharp // 假设我们想将第三列转换为ComboBox DataGridViewComboBoxColumn comboBoxColumn = new DataGridView...
- **扩展`DataGridViewComboBoxColumn`控件**:为了满足更多需求,我们可以自定义扩展`DataGridViewComboBoxColumn`控件,以支持`DropDown`和`Simple`样式。具体做法是创建一个继承自`DataGridViewComboBoxColumn`...
2. 创建`ComboBoxColumn`:通过代码或设计视图添加一个新的`DataGridViewTextBoxColumn`,然后将其转换为`DataGridViewComboBoxColumn`。 3. 配置`ComboBox`:设置`DataSource`属性以连接到数据源,`DisplayMember`...