首页 文章

不断增长的用户控制

提问于
浏览
0

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

还有另一个用户控件包含一个面板,其中包含上面的userControl1 . 有一个属性NumberCells可以更改userControl1的NumberOfCells .

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

一切都很好,但是当我增加一次时,面板更新正常(必要时插入一个垂直的卷轴)但是没有添加单元格!我已尝试在userControl2和表单上进行Invalidating,但似乎没有任何东西可以绘制新添加的单元格 .

任何帮助表示赞赏 . 先感谢您 .

  • 劳伦斯

2 回答

  • 0

    您是否在添加列时调整控件的大小?如果它们不够大,无法显示其全部内容,那么它们只会剪切它们,您可能看不到任何已添加的新列 .

  • 0

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

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

相关问题