2009-08-20 210 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