【问题标题】:Adding items inside combobox column on datagridview and click dropdown在 datagridview 上的组合框列内添加项目并单击下拉菜单
【发布时间】:2019-07-30 01:39:28
【问题描述】:

我的 datagridview 上有一个组合框列,位于我的 winforms(c#) 上,我在设计时将项目放入其中,但是当我运行程序时,我无法单击组合框列的下拉列表(第一列)它就像一个禁用的组合框列,我看不到我放在里面的项目。那里似乎有什么问题?

我已经尝试了很多从这个站点和其他站点获得的代码,但没有一个有效。我还尝试为 datagridview 的第一列的 readonly 属性设置 TRUE 值,这是组合框列,但结果相同

【问题讨论】:

  • 嗨 hamza,你能给我一个想法来解决我的组合框列问题吗?谢谢。高度赞赏

标签: c# winforms datagridview combobox


【解决方案1】:

我相信您已经测试并确认组合框在单独时可以正常工作。

我可以想到两种可能性:A) 组合框没有收到任何鼠标点击事件。 B) 组合框收到鼠标点击事件但没有反应。

我们首先检查它是否是由可能性A引起的。一种测试方法是在此组合框中临时添加一个简单的鼠标点击事件方法(例如弹出消息框或在鼠标点击事件发生时添加控制台日志触发)。

=> 如果实际触发了鼠标点击事件,则说明可能A错误,原因应该是B。然后请检查combobox或其父容器/控件是否被禁用(禁用的UI元素仍然可以触发鼠标hit 事件,但它们不会做出反应,因为它们被禁用)。

=> 如果确认鼠标点击事件没有触发,那么还有两种可能的子场景:

  • 1:组合框对鼠标点击事件是“透明的”。要解决此问题,请将其 IsHitTestVisible 设置为 true。

  • 2:组合框的父容器/控件“阻止”了鼠标点击事件。为了测试这一点,您将组合框替换为普通按钮,看看它是否也不是反应式的。如果是这样,则证明了这种情况,因此您需要跟踪其父容器/控件的层次结构并查看鼠标点击事件在何处“被阻止”。

【讨论】:

    猜你喜欢
    • 2021-07-14
    • 1970-01-01
    • 2014-10-26
    • 2017-12-26
    • 2010-12-16
    • 1970-01-01
    • 2011-01-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多