2009-06-26 7 views
0

VBで自分のコントロールを.NET用に作成しようとしていますが、私がやりたいことを達成するのに問題があります。実際、テキストボックスクラスを継承するコントロールを作成していますが、コントロールに視覚的にいっぱいになると、ユーザーはもう入力できなくなります。したがって:複数行のテキストボックスが目に見えているかどうかを確認する

  • スクロールバーは決して表示されません。
  • 拡張TextBoxは、複数行または1行にすることができます。
  • 拡張TextBoxのフォントとフォントサイズが異なる場合があります。

今私が使用している技術は、graphics.measurestringを使用して、文字列の幅と高さを含むsizeFを取得して、それをテキストボックスコントロールの高さと幅と比較します。 KeyDownイベントのこのすべて(私はそれが最善の解決策であるかどうかわかりません)。私はそれが幅のためにうまく動作するようにすることができますが、私は複数行のテキストボックスの高さを右にgeすることはできません。もし誰かがこのようなことをしてきたのであれば、どうすればいいのかについての説明が必要です。ありがとうございました。

The extended TextBox may have different fonts and font sizes. 

これが意味することは、あなたがそれぞれの行は行の文字が最大のフォントサイズを持っていることであるどのように背の高い把握する必要があります、とことを知っているということです。

答えて

0

問題はあなたの第3の要件であります各行にどの文字が含まれているかを知る必要があります。 (驚くべきことに)異なるフォントは同じポイントサイズで異なる高さを持つことができるため、悪化します。それは、比例的に区切られたフォントの各文字が異なる幅であるという事実でないならば、実行可能である可能性があります。

また、上付き文字と下付き文字をサポートする場合は...

関連する問題