【问题标题】:DataGridView shuffling column widths depending on visibility when control is addedDataGridView 根据添加控件时的可见性来调整列宽
【发布时间】:2015-04-18 20:04:51
【问题描述】:

tabPage2 上的“加载”按钮和“加载”菜单项都运行相同的代码,但是正如您在上面的演示中看到的,当未选择 tabPage2 时添加控件时,列宽会随机排列是完全相同的代码,完全相同的控件,完全相同的内容。

我不确定它与问题的相关性如何,但我添加的 UserControl 如下所示:

只是一个带有两个选项卡的选项卡控件,第一个选项卡上有一个拆分容器,底部拆分面板中有一个 DataGridView。

每个“加载”都会创建一个新的标签页,一个新的用户控件,将用户控件添加到标签页,然后将标签页添加到 tabPage2 上的标签控件。

这里有什么我不知道的东西在起作用,这会使控件在添加时根据其可见性而呈现不同?

编辑:DataGridView 正在使用 DataGridViewAutoSizeColumnsMode.Fill

【问题讨论】:

    标签: c# winforms datagridview


    【解决方案1】:

    添加用户控件时,它与选项卡的可见性没有任何关系。要确认您可以保持 tabPage2 处于选中状态,您将看到与当前相同的行为。

    标签控件的选择和突出显示必须给出这个概念。您可以尝试添加大约 4 个用户控件,然后在 tab2 和 tab3 之间单击以确认。

    【讨论】:

    • 您好,感谢您的评论 - 我已经通过选择 tabPage2 并使用“加载”按钮和“加载”菜单项进行加载进行了测试,它不会导致洗牌。同时使用按钮和菜单项的组合加载大约 10 个不会导致洗牌
    • @Tony:你能试着打印第 1 列的宽度并比较结果并告诉我。
    • 从选择了 tabPage1 的菜单加载时:{141,142,142,142} 从选择了 tabPage2 的按钮加载时:{142,142,141,142}
    • @Tony 我假设这些是自动宽度。
    • 我应该提到我正在使用 DataGridViewAutoSizeColumnsMode.Fill
    猜你喜欢
    • 1970-01-01
    • 2014-01-06
    • 2011-04-18
    • 2015-08-26
    • 1970-01-01
    • 1970-01-01
    • 2014-05-26
    • 2018-07-16
    • 1970-01-01
    相关资源
    最近更新 更多