2009-12-11 41 views
0

創建新的自定義UserControl時出現此問題。詳細地說,我使用DataGridView創建了一個導出的UserControl,它將Anchor屬性設置爲[Left,Top,Right,Bottom],以便DataGridView可以在UserControl容器的大小發生更改時調整大小。但是當應用程序運行時,結果並不是完全可以預料的。 DataGridView右邊和底邊始終在UserControl邊界之外生長。爲了理解這個問題,我調試並發現,無論何時創建UserControl,其大小總是默認爲[100,100],儘管我們將其設置爲[800,600]或其他任何內容。我認爲這是問題的原因。當我們設計UserControl時,我們使用更大的尺寸,但在運行時,它的大小默認爲[100,100],所以自動計算Anchor屬性變得意外。UserControl中的控件的Anchor屬性問題

任何人都可以給我一些關於如何解決這個問題的提示嗎?我有一個骯髒的解決方案,但也有時會出現故障。我的解決方案是在UserControl的OnLoad事件處理程序中,我設置了子控件的右側和底部邊緣。這個解決方案對我的大多數自定義UserControl都能正常工作,但有時會讓我誤解。有時問題仍然存在。這讓我感到困惑。

任何人都可以給出一個清晰的解釋和這個問題的完整解決方案?

在此先感謝

回答

0

有可以解決此問題的幾種方法,一種快速簡便的方法就是把GridView控件在ASP PANEL(帶有滾動條),面板寬度設置爲100%。現在網格大小無關緊要,因爲您可以同時滾動垂直和水平。

+0

作爲一個有同樣問題的人,這顯然不能解決問題。 – HumbleWebDev 2017-01-13 14:01:07

0

我現在可以找到的唯一解決方案是使用用戶控件(有點像你說的)做一個onload事件,除了設置相對於父用戶控件發生故障的控件的高度和寬度。 ..我有一個datagridview,我將它設置爲寬度 - 50;和高度/ 2.5;這似乎阻止了它擴大其母公司,同時仍然給它錨定的影響越來越大。我認爲,無論出於何種原因,錨點都會錨定到窗口而不是父級用戶控制,這會導致此錯誤。