- - PR -
フォントの変更
1
投稿者 | 投稿内容 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2006-07-04 13:20
いつもお世話になっております。
早速ですが、フォント変更で質問があります。 フォントダイアログを使い、それに伴うフォントサイズ、書体を画面のテキスト、コンボなど、画面すべてのコントロールに反映させてたいのですが、プロパティなどで、フォントを変更しているコントロールは、変更できません。 設定していない、コントロールはうまく反映できるのですが・・・ 画面設計上、フォントを変更して作っているのですが、何かうまいやり方がありましたら五経図お願いいたします。 コードは、以下のとおりです。ダイアログから取得した値を Me.Font = New Font("書体", "サイズ") のような形で、入れています。 よろしくお願いいたします。 | ||||||||||||
|
投稿日時: 2006-07-04 13:30
これは仕様です。 下記コードを見るに、
フォームに対してのみ設定していますよね? Font プロパティの値が変更されていない場合、親コンテナの変更が適用されます。 フォームに配置されたすべてのコントロールのフォントを変更する場合は、 再帰呼び出しを使って、全コントロールに適用する必要があります。 フォーム内のすべてのテキストボックスをクリアする の TextBox クリア部分をフォントの変更に置き換えれば可能です。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||||||
|
投稿日時: 2006-07-04 14:01
即時返答ありがとうございます。
早速、先ほどのコードで、フォント変更に直しやってみました。 フォントの変更はできたのですが、そのフォントサイズ倍率でテキストボックスが伸びてくれませんでした。 コントロールには、フォントを設定せず、フォームのプロパティを設定変えたときには、その倍率でのびてきくれたので、できないのですかね?? | ||||||||||||
|
投稿日時: 2006-07-04 14:18
できません。 Height はその FontSize に応じて変更されますが、Width については変更されません。 というより、各コントロールの Font がデフォルト値の場合に、 親コンテナの Font を変更したとしても、Width については変更されなかったと思いますけど... _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||||||
|
投稿日時: 2006-07-04 15:34
返答ありがとうございます。
初期値だとできるんですよね。 vs2005だからなんですかね。 それなので、画面フォントを変えてコントロールが変わるように、コントロールはデフォルトのままで、やってみようと思います。 違う方法がわかりましたら、また書き込みします。 ご教授ありがとうございました。 | ||||||||||||
|
投稿日時: 2006-07-04 16:23
ああ、すみません。(*_ _) 2.0 (VB8 | VB2005) のお話だったのですね。 2.0 以降は、コンテナ内どころか Form 自体の大きさも変わります。 これは、Form.AutoScaleMode プロパティが、デフォルトで、 'Windows.Forms.AutoScaleMode.Font' に設定されているからです。
この方法は AutoScaleMode の設定に依存するので、場合によっては好ましくないかもしれません。 (見方によっては、'好ましい' という場合もあります)
倍率さえわかれば、リサイズの計算ができるのではないでしょうか。 Form の大きさが変わることを前提とするならば、Anchor プロパティを使うという手もあります。 (倍率でレイアウトし直さすことにはなりませんが) _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 |
1