我正在使用C#和.Net 2.0进行开发 . 我有一个用户控件,根据最大单元格数绘制单元格(柱状) . 有一些绘图程序可以生成必要的单元格 . 有一个属性NumberOfCells可以调整这个控件的高度; CELLHEIGHT_CONSTANT * NumberOfCells . 重写OnPaint()方法(绘制单元格数的代码) .
还有另一个用户控件包含一个面板,其中包含上面的userControl1 . 有一个属性NumberCells可以更改userControl1的NumberOfCells .
然后将UserControl2放在Windows窗体上 . 在该表单上有一个NumericUpDown控件(仅从1开始递增) . 当用户增加1时,我也将VerticalScroll.Maximum调整为1 .
一切都很好,但是当我增加一次时,面板更新正常(必要时插入一个垂直的卷轴)但是没有添加单元格!我已尝试在userControl2和表单上进行Invalidating,但似乎没有任何东西可以绘制新添加的单元格 .
任何帮助表示赞赏 . 先感谢您 .
- 劳伦斯
2 回答
您是否在添加列时调整控件的大小?如果它们不够大,无法显示其全部内容,那么它们只会剪切它们,您可能看不到任何已添加的新列 .
尝试调试并检查是否正确设置了
NumberOfCells
属性 . 如果是,并且在窗口失效后单元格仍未显示(例如,通过最小化然后恢复窗口),则表示您的单元格绘制方法存在问题 .如果在最小化/恢复单元格出现后,您需要在NumberOfCells的setter中调用
Invalidate(CellRegion)