2

問題の簡単な要約については、下部の図を参照してください。

こんにちは、

Formすべてのウィンドウのベースとして機能する (BaseForm という名前の) を作成しました。この基本フォームには、(簡単にするために) 下部に「ステータスバー」(ユーザーコントロール) のようなものが含まれています。

そのステータスバーはロックされているため、デザイナーで移動またはサイズ変更できません。また、アンカーが左、下、右に設定されているため、常に下にとどまり、水平方向にサイズ変更されます。

System.Windows.Forms.Form の代わりに MyProject.BaseForm を継承するように別のものを作成Formして変更すると、ステータスバーが表示されます。

しかし、ステータスバーの位置とサイズに問題があります。ステータスバーの標準的な位置とサイズが間違っています。VisualStudio は、アンカーを適用する代わりに、BaseForm から場所とサイズを取得します。

また、問題を解決するためにステータスバーを移動/サイズ変更することはできません(したくありません!)。

明白で効果的な解決策の 1 つは、ステータスバーの Dock プロパティを Bottom に設定することです。しかし、ドッキングしてはならないコントロールもあるため、それを問題の一般的な解決策として使用することはできません。(たとえば、常にフォームの右下隅にあるボタン)

4

2 に答える 2

2

単純な問題があります。コントロールはプライベートであるため、派生フォームで台無しにすることはできません。Location や Size など、どのプロパティにもアクセスできません。これにより、派生フォームの間違った場所に固定されます。レイアウト エンジンも移動できません。そして、なぜロックアイコンが表示されるのか.

BaseForm に戻り、ユーザー コントロールを選択して、Modifiers プロパティを Private から Protected に変更します。再構築します。これで、移動する必要がある派生フォームに移動できます。

于 2013-03-29T21:28:00.310 に答える
1

TableLayoutPanelこれにアプローチする最善の方法は、明示的なドッキングの代わりにa を使用することだと思います。TableLayoutPanel親フォームに2 行を作成します。一番下の行を作り、AutoSizeその中にステータスバーを入れます。このようにして、派生フォームは、コントロールの残りを表す他の行にコンテンツを自由に追加できます。

于 2013-03-29T19:59:20.307 に答える