我想在自定義控件中實現一個AutoSize屬性(而不是用戶控件),其行爲與在設計模式下實現AutoSize(ala CheckBox)的其他標準.NET WinForms控件一樣。如何實現自定義控件的AutoSize屬性?
我有屬性設置,但它是控制在設計模式下的行爲方式使我感到困惑。 它仍然可以調整大小,這是沒有意義的,因爲視覺大小不會反映在我已經實現的AutoSize和Size屬性中。
當AutoSize爲true時,標準.NET控件不允許在設計模式下調整大小(甚至不顯示調整大小手柄)。我希望我的控制行爲以相同的方式進行。
編輯:我有工作使用SetBoundsCore()重寫,但它不會在視覺上限制調整大小時自動調整大小設置爲true,它只是有同樣的效果;功能相同,但感覺不自然。
protected override void SetBoundsCore(int x, int y, int width, int height, BoundsSpecified specified)
{
if (!this.auto_size)
this.size = new Size(width, height);
base.SetBoundsCore(x, y, this.size.Width, this.size.Height, specified);
}
這樣做的標準方式的任何想法?
你使用的是什麼UI庫?的WinForms? WPF? ASP.NET?還有別的嗎? – svick 2012-03-25 00:55:30
Winforms,編輯在=] – mina 2012-03-25 01:11:31
你嘗試添加sizechanged事件,並把你的調整大小邏輯? – Oztaco 2012-03-25 04:14:04