はじめまして、よろしくお願いします。
現在VB.NET(2002)/Win2000(SP4)と、VB.NET(2002)/WinXP(SP2)にて開発を行っております。
MouthCalendarをフォームに貼り付け、上記2台の表示を見てみるとコントロールのサイズ(Width)が異なって表示されてしまいます。
Win2000では164、WinXPでは137という値になっています。
この表示をあわせるために、コードでサイズの指定をしようと思ったのですが
MonthCalendar.Width = 137と記述してもWin2000上では164のまま変更されていません。(フォームデザイナ上での変更も、確かにできません)
MSDNや現在手持ちの参考書には「コントロールの幅を取得または設定します。」とかかれているため、コードで指定できると思ったのですが。
これに関してみなさまの知恵を拝借したいと思い、投稿しました。
どうぞ、よろしくお願いします。
>MSDNや現在手持ちの参考書には「コントロールの幅を取得または設定します。」とかかれているため
ヘルプは結構大雑把な所があって、Control クラスの継承で
ほとんどのコントロールに存在する Width プロパティには
同じ説明が付けられていると思われます。
ただ、コントロールの内部処理の形によっては、幅を変更すると
不都合が出てくるコントロールがあっても不思議ではありません。
そんな場合、サラリと内部処理で受け付けないで、ヘルプなどで
何の説明も無いコントロールも…多々あります(汗)。苦情は
直接マイクロソフトへどうぞ。
MonthCalendar の場合、フォントを変更するとそれに伴い
コントロールの大きさが自動で決定されるみたいです。
…その辺が都合が悪いんじゃないでしょうか?w
Width プロパティ変更でどうにかできる方法があるかどうかは
分かりませんが、とりあえずフォントとの関係を調べてみては
どうでしょう?
特攻隊長まるるうさん、ご回答ありがとうございました。
説明の足りなかった部分がありましたので補足します。
サイズが異なるのは、幅だけなのです。
早速フォントサイズの変更を行ってみましたが、こうすると
Heightプロパティの値も変わってしまいました。
Win2000、WinXPとも同じフォント設定にしていて、
OSによってコントロールの幅だけが異なるとしたら、どのような原因が考えられるでしょうか?
申し訳ありませんが、もう少しお知恵を拝借したいと思います。
よろしくお願いします。
>OSによってコントロールの幅だけが異なるとしたら、どのような原因が考えられるでしょうか?
聞かなくてもそれが答えなんじゃないの?
>OSによって
同じハードで同じソフトで同じ設定なら、たいてい同じ結果が出ます。
違うところを丁寧に調べてください。
>とりあえずフォントとの関係を調べてみてはどうでしょう?
に対して幾つのフォントを幾つのフォントサイズで組み合わせて
調べましたか?プリンタの印刷の話ですが、フォントサイズを
3の倍数にすると改善した…というのもあります。またフォントには
プロポーショナルフォントと等幅フォントといった分類もあります。
単純に調べ方が足りないだけじゃないですか?
他の原因で、よくあるのは解像度の設定が違うということです。
その他、ハード的な違いで起こる場合もあります。その場合は
同じ端末のハードディスクを2つに分けて違うOSをインストール
してみたり…いくらでも調べる方法はあると思いますが?
こちらで現象を再現できました。
[Win2000]
解像度: 1024×768
フォント: MS P ゴシック 20.25pt
Size: 237, 295
[WinXp]
解像度: 800×600
フォント: MS P ゴシック 20.25pt
Size: 268, 295
どれが直接的な原因かまでは調べてません。
特攻隊長まるるうさん、たびたび回答ありがとうございます。
>聞かなくてもそれが答えなんじゃないの?
>OSによって
ということでしたが、やはりMonthCalendarを使用しているフォームを開く際に
OSを判断し、それに応じた調整が必要になる、ということでしょうか。
確かに、すべてのフォントとサイズの組み合わせを調べたわけではないですが、
現時点では 2000 と XP で同じように表示されるようなフォントは見つかっておりません。(先ほどの投稿は、返事を急ぎすぎてしまったかもしれませんね。申し訳ありませんでした。)
>他の原因で、よくあるのは解像度の設定が違うということです。
これに関しては、同一解像度にて比較しています。
>同じ端末のハードディスクを2つに分けて違うOSをインストール
>してみたり…
これは…現在使用している環境にあまり手を加えられないので、ちょっと不可能なんです。
もう少しフォントの組み合わせを調べてみます。
特攻隊長まるるうさん、わざわざ再現確認、ありがとうございます。
>>聞かなくてもそれが答えなんじゃないの?
>>OSによって
>ということでしたが、やはりMonthCalendarを使用しているフォームを開く際に
>OSを判断し、それに応じた調整が必要になる、ということでしょうか。
>現時点では 2000 と XP で同じように表示されるようなフォントは見つかっておりません。
こちらでは同じように表示される場合の方が多いんですよねぇ(汗)。
ですから、解像度も含めてかなり無茶な設定をしないと再現できません
でした。つまり OS が判れば調整できるというものでは無いかもしれません。
ただ、今回、
>>他の原因で、よくあるのは解像度の設定が違うということです。
>これに関しては、同一解像度にて比較しています。
という事もあり、…根本的な何かを見落としてる可能性が…う〜ん。
とりあえず現在採用している解像度とフォント名、フォントサイズを
公開して、他の方の回答も待ってみては?差し支えなければ端末の
機種名も公開して頂ければ、解決の可能性は高まるかもしれません。
新規プロジェクトにコントロール貼り付けて特定のフォントを設定し、
特定の解像度にするくらいならテストしてくれる方もいらっしゃると
思います。
>>同じ端末のハードディスクを2つに分けて違うOSをインストール
>>してみたり…
>これは…現在使用している環境にあまり手を加えられないので、ちょっと不可能なんです。
常時起動していないといけない端末とかで無い限り、新しいハードディスクを
用意して、現在のハードディスクと入れ替えれば環境は変わりませんが?
…ボクはよくそんな事してますが(^^;)まぁ、無理ならしょうがないです。
特攻隊長まるるうさん、昨日はありがとうございました。
>こちらでは同じように表示される場合の方が多いんですよねぇ(汗)。
>ですから、解像度も含めてかなり無茶な設定をしないと再現できません
…そうですか。
今日は、Win2000に入っていて日本語表記が文字化けしないものに関して
すべてWinXPと比べてみました。
が、どのフォントにしても(フォントサイズは9pt固定です)すべて Height の値は
同一で、 Width の値が約25異なる(XPの方が小さくなる)という結果になってしまいました。
>とりあえず現在採用している解像度とフォント名、フォントサイズを
>公開して、他の方の回答も待ってみては?
現在はコントロールを貼り付けたときのデフォルト値の【MS UI Gothic】の【9pt】に戻しています。
このとき
[Win2000]
解像度: 1024×768
フォント: MS P ゴシック 9pt
Size: 164, 145
[WinXp]
解像度: 1024×768
フォント: MS P ゴシック 9pt
Size: 137, 145
という値になります。
>差し支えなければ端末の機種名も公開して頂ければ、解決の可能性は高まるかもしれません。
端末ですが、
[Win2000]
Dell Optiplex GX260
[WinXP]
Dell Optiplex GX60
を使用しています。
>常時起動していないといけない端末とかで無い限り、新しいハードディスクを
>用意して、現在のハードディスクと入れ替えれば環境は変わりませんが?
そうですよね!…ただ、新しいハードディスクを用意…できません(^^;
すみません、先ほどの投稿に誤りがありました。訂正いたします。
[Win2000]
解像度: 1024×768
フォント: MS UI Gothic 9pt
Size: 164, 145
[WinXp]
解像度: 1024×768
フォント: MS UI Gothic 9pt
Size: 137, 145
でした。
フォント部分が、MS P ゴシックになっていました…
私も同じような現象で悩みました。
ただし,PDAなので同じかどうか分かりませんが,確かめてみてください。
いつも使っているソフトのカレンダーのサイズが突然変わったのです。
実はその前に日付の設定を変更しました。
コントロールパネルの「地域と言語のオプション」で変更できるところです。
日付の形式を短くしたらカレンダーの横幅が短くなりました。
もし,Win2000とWinXPの日付の表示形式が異なっているなら,変更して同じにして試してみてください。
ツイート | ![]() |