6

Windows フォームでは、ラベル コントロールをY=0グループ ボックス内に配置すると、ラベルがグループ ボックスの上のタイトル テキストと交差します。

Groupbox内の使用可能な領域、つまり、ボックスのタイトル テキストによって遮られていない領域を取得するにはどうすればよいですか?

設定control.Y = groupBox.Padding.Top が機能しません。またGroupbox.ClientRectangle、テキストも考慮されていません。

説明

編集: その内側の長方形を取得する簡単なハックがあります: 単純に 1 つLabelを に配置し、そのプロパティを Fill にGroupBox設定します。Dock次に、パネルから関連情報 (上/下/左/右) を取得するか、パネルを直接使用して子コントロールを追加します。ただし、そのようなハックなしでそれらの座標を取得する方法を知りたいです。

4

2 に答える 2

3

DisplayRectangleプロパティを使用してみてください。

DisplayRectangle プロパティは、コントロールの表示領域のクライアント四角形を返します。基本コントロール クラスの場合、これはクライアントの四角形と同じです。ただし、コントロールを継承すると、クライアント領域が表示領域と異なる場合にこれを変更する必要がある場合があります。表示四角形は、コントロールを囲む最小の Rectangle であり、コントロールのレイアウトに使用されます。

例:

label1.Location = groupBox1.DisplayRectangle.Location;
于 2013-01-15T20:50:43.020 に答える
1

かなり古いスレッドですが、ここに私がコントロールに使用するものがあります:

label1.Location = new Point(0,(int)(groupBox1.Font.Size)*2);

HeaderWithBigText

HeaderWithSmallText

そして、これはさまざまなテキストサイズでどのように見えるかです。

于 2016-03-30T11:49:47.657 に答える