c# - 设置 DataGridView ComboBox 的默认值

标签 c# winforms datagridview combobox datagridviewcomboboxcell

我的应用程序由 DataGridView 内的 DataGridviewComboBoxColumn 组成。 ComboBoxColumn 正在从数据库表(键、值对)中填充。我正在尝试使用 DefaultValuesNeeded 事件设置 ComboBox 列的默认值,但它不起作用。

示例代码如下:

e.Row.Cells["Job"] as DataGridViewComboBoxColumn).Value ="12"

但它显示 12 作为值,而不是 12,它应该显示 12 值的实际文本。

例如:

enter image description here

DataGridViewComboBoxColumn dgvCbJob = new DataGridViewComboBoxColumn();
{
    dgvCbJob.HeaderText = "Job";
    hadd.Clear();
    hadd.Add("@Search", string.Empty);
    ds = ObjDAL.GetDataSetForPrc("prc_GetJobList", hadd);
    if (ds.Tables[0].Rows.Count > 0)
    {
        dgvCbJob.DataSource = ds.Tables[0];
        dgvCbJob.DisplayMember = "JobName";
        dgvCbJob.ValueMember = "JobMasterId";
    }
    dgvCbJob.DisplayIndex = 0;
    dgvCbJob.Width = 100;
    dgvCbJob.Name = "Job";
}

最佳答案

要设置单元格的默认值,您可以使用以下选项之一:

  • 处理网格的DefaultValuesNeeded事件并将值赋给e.Row.Cells["Job"].Value
  • 在您的DataTable 中,将“Job”DataColumnDefaultValue 设置为所需值

在这两个选项中,您分配的值类型应与列的 DataType 类型相同。

注意:您应该知道e.Row.Cells["Job"] 不是DataGridViewComboBoxColumn。如果列是组合框,则单元格是 DataGridViewComboBoxCell

关于c# - 设置 DataGridView ComboBox 的默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38592231/

相关文章:

c# - 当名称包含字母和数字时排序

c# - 反射(reflect)类型时出现错误 - XML 序列化问题

c# - 如何将mysql表中的数据添加到C#表单中

C#:在不实际单击按钮的情况下调用按钮事件处理程序方法

c# - 更改对象列表的编码

c# - 如何向控件添加工具提示?

.net - 摆脱 MDI UI 的灵感

c# - 在 DataGridView 中只允许选中一个复选框

c# - CurrentCellDirtyStateChanged 触发两次

c# - 具有复制/粘贴功能的只读 DataGridView?