1

私はベースフォームを持っています。フォームの右下に [OK] ボタンと [キャンセル] ボタンを配置し、それらを下と右に固定します。

継承されたフォームは、[OK] ボタンと [キャンセル] ボタンのアンカー プロパティを尊重しません。再現するための正確な手順は次のとおりです。

1- 右下にボタンがある基本フォームを作成します。右下に固定します。3- 手順 1 で作成した基本フォームから継承する新しいフォームを作成します。 4- (デザイナーで) 2 番目のフォームの高さまたは幅を増やします。5- ボタンが正確に動かないことがわかります。そのため、アンカー プロパティが無視されます。

私は何か間違ったことをしていますか、それとも VS2008 はベース フォームのコントロールのアンカー プロパティを尊重していませんか?

ありがとう。

4

3 に答える 3

2

非常にいたずらなことが起こっていることに注意してください。基本クラスのプライベート フィールドのプロパティ (Location プロパティ) が変更されており、.NET アクセシビリティ ルールに完全に違反しています。それはある程度までは機能しますが、プロジェクトを実行するとガスがなくなります。修正は簡単です。ボタンの Modifiers プロパティを Private から Protected に変更します。

于 2009-01-14T04:53:34.143 に答える
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);

}
于 2009-01-14T02:48:53.833 に答える
1

わたしにはできる。

継承されたフォームをどのように作成していますか? 囲碁

  1. 建てる
  2. 新規追加 -> Windows フォーム
  3. Windows フォームを選択
  4. 継承されたフォームを選択
  5. 元の形を選ぶ

ボタンは期待どおりに動きます。

于 2009-01-14T02:23:06.083 に答える