相关疑难解决方法(0)

如何手动下拉DataGridViewComboBoxColumn?

我的WinForms应用程序中有一个DataGridView和一个DataGridViewComboBoxColumn.我需要手动下拉(打开)这个DataGridViewComboBoxColumn,比如单击一个按钮后.

我需要这个的原因是我已将SelectionMode设置为FullRowSelect,我需要单击2-3次才能打开组合框.我想点击组合框,它应该立即下拉.我想用CellClick事件做这个,或者还有其他方法吗?

我在Google和VS帮助中搜索,但我还没有找到任何信息.

有人可以帮忙吗?

.net datagridview

20
推荐指数
3
解决办法
2万
查看次数

DataGridViewComboBoxColumn在第一次单击时不会打开下拉列表

任何人都标志着这是重复之前,PLZ注意,这是不一样的问题问在这里,这里这里.

如果您有两个或更多个DataGridViewComboBoxColumn,DataGridView并且其中一个的下拉列表当前处于打开状态,则单击其他列的下拉按钮不会打开该下拉列表.相反,你仍然需要点击两次.首次单击会隐藏已打开的下拉列表,第二次单击实际上会打开您单击的下拉列表.

请注意,EditOnEnter模式为ON 时需要两次单击; 否则你必须执行三次点击才能完成这项工作.我也尝试过ContentClick事件,没有任何好处.

那么当DataGridViewComboBoxColumn我的网格中有多个操作时,如何使用一键操作?

更新

以防万一有人想要重现它,这是一个过程:

  1. 创建一个新的WinForms C#项目.
  2. 转到Form1的代码并将其粘贴到InitializeComponent行后面的构造函数中:

    DataGridView dgv = new DataGridView();
    DataGridViewComboBoxColumn col1 = new DataGridViewComboBoxColumn();
    DataGridViewComboBoxColumn col2 = new DataGridViewComboBoxColumn();
    
    dgv.Columns.AddRange(new DataGridViewColumn[] { col1, col2 });
    dgv.Dock = DockStyle.Fill;
    dgv.EditMode = DataGridViewEditMode.EditOnEnter;
    
    col1.Items.AddRange(new object[] { "Cat", "Dog", "Elephant", "Lion" });
    col2.Items.AddRange(new object[] { "Duck", "Hen", "Crow", "Sparrow" });
    
    this.Controls.Add(dgv);
    
    Run Code Online (Sandbox Code Playgroud)
  3. 运行该项目.单击第一个下拉列表,然后单击另一个下拉列表而不关闭第一个下拉列表.它将需要2或3次点击(取决于您在第二个下拉列表中单击的位置)才能打开第二个列表.

c# datagridview winforms

6
推荐指数
1
解决办法
1939
查看次数

标签 统计

datagridview ×2

.net ×1

c# ×1

winforms ×1