DOBON.NET どぼん!のVB道掲示板(プログラム)過去ログ

TextWidthの代替

  • 題名: TextWidthの代替
  • 著者: DEG
  • 日時: 2003/04/24 5:33:00
  • ID: 991
  • この記事の返信元:
    • (なし)
  • この記事への返信:
  • ツリーを表示
はじめまして、
VB.NETで、FormなどのTextWidthメソッドがなくなりましたが

Dim e As なんてかくの?
Dim mySize As New System.Drawing.SizeF
mySize = e.Graphics.MeasureString("調べたい文字", Me.Font)

で、代替できそうかと思うんですが、ヘルプでは、Paintイベントの例しかなく、
e As PaintEventArgs
に相当するオブジェクトには、なにを使えばよいかわかりません。
FormLoad イベントに次の記述を書いてみてください。結果をフォームのタイトルに表示しています。

Dim myGraphics As System.Drawing.Graphics
myGraphics = Me.CreateGraphics
Me.Text = myGraphics.MeasureString("文字列", Me.Font).Width

やっていることは、(1) Graphicsオブジェクトの宣言。(2)Graphicsオブジェクトをフォームに作らせて、参照を取得・保持する。(3)MeasureStringメソッドを実行する。です。これから描こうとしている領域(など)のグラフィックオブジェクトを取得して、それを使って調べるという感じです。(実際に描くときのやりかたです。)

どうでしょうか?
  • 題名: ありがとう:TextWidthの代替
  • 著者: DEG
  • 日時: 2003/04/24 17:55:00
  • ID: 996
  • この記事の返信元:
  • この記事への返信:
    • (なし)
  • ツリーを表示
SHIN-ICHIさん、こんにちは、

>Dim myGraphics As System.Drawing.Graphics
>myGraphics = Me.CreateGraphics
>Me.Text = myGraphics.MeasureString("文字列", Me.Font).Width

うまくいきました、
どうもありがとうございました。

DOBON.NET | プログラミング道 | プログラミング掲示板