- - PR -
ActiveReport.NETで文字列の長さを取得するには?
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2007-05-25 16:29
ADP.NET2003 + ActiveReport.NET2.0で開発を行なっています。
現在作成中のラベルで文字数に合わせてフォントサイズを動的に変更を行なわなくてはならない箇所があります。 変更の条件は、コントロールの幅と文字数からフォントサイズを逆算した場合と、 コントロール中でワードラップした場合とを比較し、サイズの大きい方のフォントを設定するというものです。 一先ず等幅フォントの全角のみを使用し、フォントの高さを幅として計算し、 フォントサイズを取得する関数を以下のように作成したのですが、実際のデータでは全半角混在のため、 特定のフォントを使用した場合の文字列の長さを取得する方法をご存知の方がいらっしゃればご教示ください。
| ||||
|
投稿日時: 2007-05-25 16:35
特定の文字を使うなら普通は「W」あたりを使う。(半角で)
今回は普通にMeasureStringメソッドで取得すればいいんじゃねーかな? | ||||
|
投稿日時: 2007-05-25 16:58
御回答有難うございます。
http://dobon.net/vb/dotnet/graphics/measurestring.html ↑こちらでMeasureStringメソッドについては知っていたのですが、 ActiveReport.NETのコントロールからCreateGraphicsすることが 出来ないようだったので諦めていたのですが、もう一度調べなおしてみます。 | ||||
|
投稿日時: 2007-05-25 19:43
CreateGraphics メソッドでインスタンスが欲しいのであれば、System.Windows.Forms.Control かその派生クラスである必要があります。 その他の一般的な方法としては System.Drawing.Image のインスタンスから得る方法、Paint 系のイベント引数から得る方法がありますが、帳票はあくまで帳票ですから用紙やドライバなどによって誤差は確実に生まれます。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||
|
投稿日時: 2007-05-28 11:22
じゃんぬねっとさん、御回答ありがとうございます。
長さを取得できればいいのだから、別に実際に表示させるコントロールから CreateObject させる必要はなかったのですね。 思考が硬直してました。 |
1