2009-08-20 267 views
4

我正在创建自己的基本网格控件。我决定从ScrollableControl派生(这是DataGridView似乎做的)并从那里开始。创建“虚拟”ScrollableControl?

我有很多的代码的地方画我的细胞,但我有困难搞清楚如何利用ScrollableControl的“滚动”的一部分。看来ScrollableControl被设计成其他控件的容器,它的“自动”滚动功能是围绕控件边界外的子控件定向的。

我只是希望设置控制的“虚拟”的区域,所以我得到正确尺寸的滚动条,然后我做我自己的绘画进入控制创建自己的“看法”。

基本上,我非常的沮丧此。什么是最简单的方法来实现这个工作?

回答

9

您必须设置AutoScrollMinSize property告诉你打算什么渲染领域的控制。

+0

我现在明白了。哇,这很不直观。 MinSize实际上是最大尺寸......或者说虚拟区域的尺寸...... – 2009-08-20 02:49:35

+0

我完全同意这个命名。一个人肯定不会猜到这就是它的名字。 – 2009-08-20 03:03:25

+0

谢谢,这个节省了我很多时间。 – ChandlerPelhams 2012-07-18 17:01:46

1

据我所知,您需要将的一些 ScrollableControl的子项定位在您的虚拟曲面的右下边界处。也许一个具有1像素透明图像的PictureBox可以。我想你可以看看SourceGrid,作为设计灵感(它可以很好地利用MVC模式),或者它可以解决你的问题,而且你不会想要推出自己的产品。

编辑:卫生署!我很确定迈克尔的解决方案是正确的/更好的。但是你可能仍然想看看SourceGrid。

0

你可以只转储到一个主机,带滚动条:)

-2

为了不被翻转,您正在寻求定制的水平远在WPF更合适,更面向未来的。如果您的应用程序无法正常运行,则可以构建控件并将其存放在WinForms中。

+2

有两个问题。我的代码必须在Windows 2000上工作,WPF无法在Win2k上工作,我现在没有时间投资学习WPF。 – 2009-08-20 03:26:31