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