2009-01-14 38 views
1

我有一個基本的形式。我將Ok和Cancel按鈕放在窗體的右下角,並將它們固定在底部和右側。Visual繼承在VS2008中工作嗎?

繼承的表單不遵守Ok和Cancel按鈕的錨定屬性。以下是重新制作的確切步驟。

1-使用位於底部/右側的按鈕創建基本窗體。將它錨定在Bottom,Right。 3-創建一個新的表單,它從步驟1中創建的基本表單繼承。 4-增加(在設計器中)第二個表單的高度或寬度。你會看到這個按鈕沒有完全移動,因此羞辱了它的錨定屬性。

我做錯了什麼,或者VS2008是否不尊重基礎窗體上控件的錨定屬性?

謝謝。

回答

2

嗯跟着你的步驟和工作完美......

確保繼承的形式不覆蓋在設計... 礦「繼承的窗體」的某些屬性只有這樣:

private void InitializeComponent() 
{ 
    this.SuspendLayout(); 
    // 
    // Form2 
    // 
    this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); 
    this.ClientSize = new System.Drawing.Size(296, 154); 
    this.Name = "Form2"; 
    this.ResumeLayout(false); 

} 
1

它適合我。

你是如何創建繼承形式的?我去

  1. 構建
  2. 新增 - > Windows窗體
  3. 選擇Windows窗體
  4. 選擇繼承的窗體
  5. 選擇原始形式

按鈕移動預期。

2

請注意,一些非常頑皮的事情正在進行。基類的私有字段的屬性正在改變(位置屬性),完全違反了.NET可訪問性規則。這可以起到一定的作用,但是一旦你運行你的項目就會用盡氣體。修復很簡單,將按鈕的Modifiers屬性從Private更改爲Protected。