2011-08-28 10 views
6

コントロールを別のコントロールにアンカーできますか?他のコントロールにコントロールをアンカーできますか?

私は、私のButton1がTextBox1コントロールからの距離を4倍に保つことを、
FlowLayoutTableコントロールを使用しないでしたいですか?

"Why would be this advantageous?" - one could ask 

さてあなたは垂直スプリッタとSplitContainerを持っていて、左と右にアンカーが、その最大サイズの
幅はあなたがに許可よりも小さくなっているSplitContainer.Panel1でテキストボックス
を持って言うことができます持っているSplitContainer.Panel1の幅(多分
テキストがあったり、追加のパディングまたは何でもので、表示したいので、あなたはそれに名前を付ける)

さて、あなたはまた、次のTextBox1にボタンがあり、へのTextBox1をたくないとしましょうbe
は、ボタン1が遠くまで延びているため、ボタン1によってオーバーラップされています。

私のテキストボックスにSplitContainer.Panel1を埋め込みたい場合は、
Button1のコントロールのままで、どちらも右に固定されていますが、どうすればいいですか?

+0

質問から難解です。アンカーは単純なレイアウトに適しています。 SplitterMovingイベントまたはコントロールのLocationChangedイベントまたはSizeChangedイベントをサブスクライブし、LocationまたはSizeプロパティを変更して、カスタムレイアウトを実装します。 –

+0

@ハンスおかげさまで、それが解決策になると思っていたのでしょうか、それを行うにはもっと正しい方法がありました。私はそれが可能かどうか疑問に思っていましたが、あなたの答えは、別の質問:) – Qqbt

+0

@ハンスあなたの質問は、イベントを発し、私はあなたにWithEvents、私は聞いている:) – Qqbt

答えて

5

これを達成するために、TableLayoutPanelsとFlowLayoutPanelsを広く使用します。特定の状況では、3つの列と各TextBoxの行を持つTableLayoutPanelを使用します。

列1:自動幅:ラベルにはすべてAutoSize = Trueが含まれます。
列2:幅100%、テキストボックスにはすべてAnchor = Left, Rightが含まれます。
列3:自動幅。適切な行にボタンが含まれています。

次に、ボタンの隣にあるテキストボックス以外のすべてのテキストボックスを設定します(ColumnSpan = 2)。次に、SplitPanelにTableLayoutPanelを配置し、Dock = Fillを設定します。

0

左から流出して作業を続けなければならないシーケンスで、右側がレイアウトになるようにします。

  1. リスト項目は安全なものを提供する必要があります。
  2. リストアイテムこのメソッドで使用されるすべてのものが提供され、チェックされる必要があります。
関連する問題