weixin_44049474
望諸公
采纳率50%
2019-12-22 03:19

DataGridViewComboBoxColumn不能通过其它单元格的值来关联显示?

20
已采纳

本人已知的一些基本设置要求如下:
DIM ComboBoxColumn1 AS NEW DataGridViewComboBoxColumn
WITH ComboBoxColumn1
.Name = "产品名称"
.DataSource = DataView1 '商品表的视图
.DisplayMember = "产品名称" '显示值
.ValueMember = "产品编码" '实际值
END WITH
DataGridView.Columns.Add(ComboBoxColumn1)

DIM ComboBoxColumn2 AS NEW DataGridViewComboBoxColumn
WITH ComboBoxColumn2
.Name = "产品版本"
.DataSource = DataView2 '版本表的视图
.DisplayMember = "版本名称" '显示值
.ValueMember = "产品版本号" '实际值
END WITH
DataGridView.Columns.Add(ComboBoxColumn2)


'DataGridView的作用是录入业务数据,不绑定数据源,因此组合框应该不需要设置参数DataPropertyName。

求解:
当在DataGridView另一列的单元格输入产品编码时,
1.根据该行的产品编码,如何令ComboBoxColumn1自动显示产品名称,产品名称只作为显示,不需贮存。
2.根据该行的产品编码,如何令ComboBoxColumn2自动显示版本名称,版本名称作为显示,实际贮存版本号,下拉显示该产品编码的所有版本号。
3.ComboBoxColumn2允许用户手工录入,而不仅仅通过下拉框选择。

请确实了解的朋友解答,给出代码顺序!

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

1条回答

  • dabocaiqq dabocaiqq 2年前

    VB和C#思路一样的。采纳后可以帮你用VB专门写

    你先参考下:

    private void dataGridView1_CellValueChanged(object sender, DataGridViewCellEventArgs e)
            {
                if (dataGridView1.Columns[e.ColumnIndex].Name == "City")
                {
                    DataGridViewComboBoxCell comboxCell =(DataGridViewComboBoxCell)dataGridView1.Rows[e.RowIndex].Cells["City"];
                    DataGridViewTextBoxCell textbox =(DataGridViewTextBoxCell)dataGridView1.Rows[e.RowIndex].Cells["城市"];
                    textbox.Value = comboxCell.Value.ToString();
                    dataGridView1.Invalidate();
                }
            }
    private void dataGridView1_CurrentCellDirtyStateChanged(object sender, EventArgs e)
            {
                if (dataGridView1.IsCurrentCellDirty)
                {
                    dataGridView1.CommitEdit(DataGridViewDataErrorContexts.Commit);
                }
            }
    
    点赞 评论 复制链接分享