【问题标题】:.NET Datagridview ComboBoxColumn -Selected Value.NET Datagridview ComboBoxColumn - 选定值
【发布时间】:2023-03-16 08:37:01
【问题描述】:

我在 VB.NET 中创建了一个应用程序,其中包含一个绑定到数据表的 datagridview (dg)。

然后我创建一个 DataGridViewComboBoxColumn 并使用另一个数据表中的下拉选项填充它。

我用以下方式绑定它:

        sHeader = "CType"
        With DDcol
            .DataSource = dtTemp
            .ValueMember = "VID"
            .DisplayMember = "Display"
            .HeaderText = sHeader
            .FlatStyle = FlatStyle.Flat
            .Name = sHeader
            .DisplayIndex = 1
        End With

dtTemp 是一个包含由 SQL 生成的值的数据表,如果在 MS SQL Server Management Studio 中运行,则如下所示:

VID Display
1   Value One
2   Value Two

然后我将该列添加到 datagridview。

dg.Columns.Add(DDcol)

它按预期显示。

但是,ValueMember 不生效。

如果我向下拉列添加一个操作,它产生的值是 DBNULL。如果我尝试使用下面的代码预先填充表格,它就不起作用。任何解决此问题的帮助将不胜感激。

dg.Rows(0).Cells(sHeader).Value = 1

【问题讨论】:

  • 请添加所有相关代码;即:dtTemp是什么,DDcol怎么加到DGV上,sHeader的值是多少等
  • 谢谢@varocarbas。刚刚编辑。

标签: .net vb.net datagridview


【解决方案1】:

我刚试过这个:

var dt = new DataTable();
dt.Columns.Add("vid", typeof(int));
dt.Columns.Add("display", typeof(string));
dt.Rows.Add(new object[] { 1, "one" });
dt.Rows.Add(new object[] { 2, "two" });
dt.Rows.Add(new object[] { 3, "three" });
dataGridView1.Columns.Add(new DataGridViewComboBoxColumn 
    { DataSource = dt, ValueMember = "vid", DisplayMember = "display" });
dataGridView1.Rows[0].Cells[0].Value = 1;

...而且效果很好...也许您可以自己在 vb.net 中重写...

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-01-31
    • 2015-01-27
    • 1970-01-01
    • 2018-04-15
    • 1970-01-01
    • 1970-01-01
    • 2015-05-21
    • 1970-01-01
    相关资源
    最近更新 更多