0

可変テキストのラベルが 2 つあるとします。ラベル 1 は画面の中央にあります。ラベル 1 の右側にラベル 2 を配置できます。

label1.Location = (WIDTH / 2, Height / 2)
label2.Location = new Point(label1.Right, label1.Top);

フォーム出力:

 _______________ 
|               |
|      100 200  |
|_______________|

今度は同じことをしたいのですが、Label 2 を Label 1 の左側に配置します。どうすればよいですか?

フォーム出力:

 _______________ 
|               |  
|  200 100      |
|_______________|
4

2 に答える 2

1

が既に適切なサイズになっている場合label2は、その幅を の左側から差し引くことができますlabel1

label2.Location = new Point(label1.Left - label2.Width, label1.Top)

図:

  -----(label1.Left - label2.Width)
  | |
  | | -----label1.左
 _|___|_________
| | vv |  
| | +---+---+ <--------label1.Top
| | |200|100| | |
| | +---+---+ |  
| | '---' |
|___|__________|
    | |
    -----label2.幅
于 2013-10-23T15:04:11.413 に答える
0

最初のラベルの左端から開始し、配置するラベルの幅を差し引いて 2 番目のラベルを配置します。

label2.Location = new Point(label1.Left - label2.Width, label1.Top);

ところで、最初のラベルに使用される値は、ラベルの幅と高さが実際にラベル コンテナーの中心にあると見なす必要があります。したがって、最初のラベルをそれを含むフォームの中央に配置したい場合は、次のような式を使用する必要があります

int leftPos = (this.Width / 2) - (label1.Width / 2);
int topPos = (this.Height / 2) - (label1.height / 2);
label1.Location = new Point(leftPos, topPos)
于 2013-10-23T15:04:21.927 に答える