2012-04-18 2 views
2

WinForms .Net 2.0プロジェクトでは、ボックス自体が左上隅に揃うように複数の行をサポートするチェックボックスが必要です。
これは、デフォルト(MiddleLeft)と異なるCheckAlign = System.Drawing.ContentAlignment.TopLeftを使用して行われます。大きいフォントの複数行CheckBox上の左上のボックスの整列

デフォルトフォントで作業しているときは、このように見えますが、フォントが大きくなると、テキストの上のギャップが大きくなりますが、ボックス自体の上のギャップは一定のままです。
結果は、テキストの上にボックスが表示されます(下の図を参照)。

アイデア?

私はあることに注意したいと思います:

  1. は、私はすでになどのカスタムデザイナー、TableLayoutPanelを使用するなど、いくつかのオプションを試してみましたが、これまで取得できませんでした。
  2. .Net 2.0は強制的です。アップグレードはオプションではありません。

ありがとうございます。

CheckBox Issues

+3

ここには多くのオプションはありません。たぶん、テキストのラベルの横にテキストのないチェックボックス。 – LarsTech

+0

ありがとう、しかし、私は既に(TableLayoutPanelで)それを試したことがあります。最終結果は同じです。ボックスの上の隙間は静的のままですが、フォントサイズが大きくなるにつれてテキストが大きくなります。 – AVIDeveloper

答えて

2

チェックボックスは、実際のテキストに整列されます。しかし、タイポグラフィーだけを喜ばせる方法で。大きなフォントには、分音符号が置かれているスペースである高さの高い高さがあります。 "问题"を試してみてください。それはあなたが変えることのできるものではありません。 CheckedListBoxはオーナー描画もサポートしていませんが、一般的にかなり欠陥のあるコントロールです。オーナードローListBoxを使用しない場合は、MiddleLeftまたはそれ以下のフォントだけが適切なオプションです。

enter image description here

+0

おかげさしで感謝します!ちょっとした修正 - 私はCheckedListBoxを探していません、私はCheckBoxの置き換えを探しています。上昇の高さを計算する方法はありますか? (それがなければ、所有者が作成したソリューションがどのように役立つか分かりません) – AVIDeveloper

+0

私はアイデアを持っています:FontChangedイベントで、私はビットマップに「W」をblitし、 )ピクセル。最初の空でないピクセルは、昇順の高さでなければなりません。 – AVIDeveloper

+1

ああ、どのようにスクリーンショットを撮ったのだろうかと思っていた。しかし、はい、CheckBoxで全く同じ問題です。ピクセルスキャンを使ったhackoramaは、テキストの行全体に対して行う限り、大丈夫です。個人的には、チェックボックスの開始位置と終了位置を明確にして、中央のチェックボックスが完全に自然に見えるようにします。 Paintイベントで簡単に行うことができます。 –

関連する問題