2

そのため、ボタンを動的に作成する方法についていくつかのアイデアを得るために掘り下げていました。プロジェクトに組み込むことができる投稿を見つけました。残念ながら、これらのボタンは縦に作成されます。ウィンドウ形式で、左から右に水平に整列する方法はありますか?

4

2 に答える 2

2

FlowLayoutPanelコントロールの良い例のように聞こえます。ボタンを相互に相対的に動かしていた古いコードがいくつかありました。FlowLayoutPanelに置き換えたところ、作業がずっと楽になりました。

ボタンを水平または垂直に配置したり、各ボタンの周囲にパディングを設定してボタンを等間隔に配置したり、パネル内でコントロールを配置するためのプロパティを設定したり、ユーザーがフォームのサイズを変更した場合に複数の行に移動できるようにしたりできます。後でとても簡単になります。他の10個の中央にボタンを追加してから、ボタンが互いに重ならないように手動で調整する必要があると想像してください。

ただし、実行時に動的に作成しているため、最後の問題は発生しないようです。それでも、ボタンを作成してFlowLayoutPanelに配置し、他のコントロールとの相対的な実際の配置をコントロールに処理させることができます。さらに、ボタンの複数の行で問題がない限り、ユーザーがフォームのサイズを変更した場合でも、それらを移動することを心配する必要はありません...

于 2012-06-20T16:09:01.817 に答える
0

各ボタンの場所のプロパティを設定するだけです:

int lastX = 0;
for (int i = 0; i < 4; i++) {
  Button b = new Button();
  b.Location = new Point(lastX, 0);
  this.Controls.Add(b);
  lastX += b.Width;
}
于 2012-06-20T16:05:58.333 に答える