【问题标题】:Growing user control not updating不断增长的用户控制不更新
【发布时间】:2010-04-28 20:47:24
【问题描述】:

我正在使用 C# 和 .Net 2.0 进行开发。我有一个用户控件,它根据最大单元格数绘制单元格(列)。有一些绘图例程可以生成必要的单元格。有一个属性 NumberOfCells 可以调整这个控件的高度; CELLHEIGHT_CONSTANT * NumberOfCells。 OnPaint() 方法被覆盖(绘制单元格数量的代码)。

还有另一个用户控件包含一个面板,该面板包含上面的 userControl1。有一个属性 NumberCells 可以改变 userControl1 的 NumberOfCells。

然后将UserControl2 放置在一个windows 窗体上。在该表单上有一个 NumericUpDown 控件(仅从 1 递增)。当用户增加 1 时,我也将 VerticalScroll.Maximum 调整为 1。

一切运行良好,但当我增加一次时,面板更新正常(必要时插入垂直滚动条)但未添加单元格!我已经尝试过在 userControl2 和表单上无效,但似乎没有任何东西可以绘制新添加的单元格。

感谢您提供任何帮助。提前谢谢你。

  • 劳伦斯

【问题讨论】:

    标签: c# winforms controls onpaint


    【解决方案1】:

    尝试调试并检查NumberOfCells 属性是否正确设置。如果是这样,并且在窗口失效后单元格仍然不显示(例如,通过最小化然后恢复窗口),则您的单元格绘制方法有问题。

    如果在最小化/恢复单元格后出现,您需要在 NumberOfCells 的设置器中调用 Invalidate(CellRegion)

    【讨论】:

      【解决方案2】:

      您是否在添加列时调整控件的大小?如果它们不够大以显示其全部内容,那么它们将简单地剪切它们并且您可能看不到任何已添加的新列。

      【讨论】:

        猜你喜欢
        • 2014-02-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-04-07
        • 1970-01-01
        • 2016-07-05
        相关资源
        最近更新 更多