如何设置值并在DataGridViewComboBoxColumn中显示它

时间:2014-02-04 09:23:45

标签: c# .net datagridview

我正在尝试设置一个Value并在DataGridViewComboBoxColumn中显示它。

我创建了DataGridView,并添加了一个列作为DataGridViewComboBoxColumn的类型。

当我运行我的程序时,一切正常,但我想自动设置并显示我的DataGridViewComboBoxColumn的默认项目,与

相同
        java ( combobox.addItem("it"); // 

项目'it'会自动显示,我们无需打开组合框并手动选择..)

我的DataGridView被调用:'Table_Items' 我编写了如下代码:

protected override void OnLoad(EventArgs e)
{

base.OnLoad(e);

DataTable dt = new DataTable();

dt.Columns.Add("Status");
dt.Columns.Add("Value");

dt.Rows.Add("Status 1", "Available");
dt.Rows.Add("Status 2", "Reserved");
dt.Rows.Add("Status 3", "Ordered");

DataGridViewComboBoxColumn cmb = new DataGridViewComboBoxColumn();

cmb.DefaultCellStyle.Font = new Font("Tahoma", 8, FontStyle.Bold);
cmb.DefaultCellStyle.ForeColor = Color.BlueViolet;
cmb.FlatStyle = FlatStyle.Flat;
cmb.Name = "CmboColumnSample";
cmb.HeaderText = "CmboColumnSample";

cmb.DisplayMember = "Status";
cmb.ValueMember = "Value";

Table_Items.Columns.Add(cmb);
cmb.DataSource = dt;

for (int i = 0; i < Table_Items.RowCount; i++)
{
Table_Items.Rows[i].Cells["CmboColumnSample"].Value = (cmb.Items[1] as DataRowView).Row[1].ToString();

}
}

我想我没有很好地解释我的问题,所以我拍了这张图片来更好地解释它:

enter image description here

我google了很多,我在这个链接中发现了一个类似的问题:

how to set SelectedIndex in DataGridViewComboBoxColumn?

但所有答案都不符合问题!! :(

对不起,如果我的英语不好,请提前谢谢你:) BinaryMan

1 个答案:

答案 0 :(得分:0)

您可以在添加到DataGridView之前尝试设置null值。

cmb.DefaultCellStyle.NullValue = "Status 1";

第一个解决方案对我有用,因为我使用的是项而不是DataSource。但相反,您可以尝试值成员。

cmb.DefaultCellStyle.NullValue = "Available";

让我知道什么对你有用。