gpt4 book ai didi

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

转载 作者:太空狗 更新时间:2023-10-29 21:56:59 25 4
gpt4 key购买 nike

在任何人将此标记为重复之前,请注意这与提出的问题不同 here , herehere .

当您的 DataGridView 中有两个或多个 DataGridViewComboBoxColumn,并且其中一个当前打开了下拉菜单时,单击不同列的下拉按钮不会打开那个下拉菜单。相反,您仍然需要单击两次。第一次点击用于隐藏已经打开的下拉菜单,第二次点击实际上打开了您点击的下拉菜单。

请注意,当EditOnEnter 模式开启时,需要点击两次;否则,您必须单击三下才能完成此操作。我也尝试过 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);
  3. 运行项目。单击第一个下拉菜单,然后在不关闭第一个下拉菜单的情况下单击另一个下拉菜单。需要点击 2 或 3 次(取决于您在第二个下拉菜单中点击的位置)才能打开第二个列表。

最佳答案

您的代码没有任何问题。这是 .NET DataGridView 控件的设计行为。

如果您点击下拉控件右侧的按钮(向下箭头)而不是文本区域,下拉列表将立即显示 - 1 次点击

如果您点击下拉控件的文本区域,如果将首先获得焦点然后显示下拉列表 - 2 次点击

如果此时展开另一个下拉列表,则需要额外点击一次才能将其折叠 - 即 3 次点击

有几个解决方法可以改善此行为。看看这个 MSDN discussion .恕我直言,这些类型的更改不值得,但您当然可以决定什么最适合您的项目。

最好的问候。

关于c# - DataGridViewComboBoxColumn 不会在第一次单击时打开下拉列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34543940/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com