DOBON.NET DOBON.NETプログラミング掲示板過去ログ

Me.Textの表示

環境/言語:[Windows2000]
分類:[.NET]

いつもお世話になっております。

Formの一番上の文字は、(Me.)Textr = "〇〇"で表示出来ますが、
この文字のある部分だけ色を変えることは可能でしょうか?
というか、文字の色自体がFormのプロパティを探しても??です。

よろしくお願い致します。
2004/08/18(Wed) 15:31:59 編集(投稿者)

■No5635に返信(Shinoさんの記事)
> いつもお世話になっております。
>
> Formの一番上の文字は、Me.Text = "〇〇"で表示出来ますが、
> この文字のある部分だけ色を変えることは可能でしょうか?
> というか、文字の色自体がFormのプロパティを探しても??です。
>
> よろしくお願い致します。

Windowsの仕様ですからねぇ。
2000以前ならば、画面プロパティのデザインに依存するし...
XPで視覚スタイルが有効なら、視覚テーマに依存するし...
Windowsの仕様を考慮した上で、仕様決定すべきだと思うんですが。

#「ある部分だけを変える」のは不可能と思っていいでしょう。
# SDKのCreateWindowEx()で出来ないくらいだし。

擬似的に、そのウィンドウより前面の透明なダイアログで、
グラフィック文字でも乗っければできるかもしれませんが。
java.lang.Nullpoさん、いつもありがとうございます。
>>
>>Formの一番上の文字は、Me.Text = "〇〇"で表示出来ますが、
>>この文字のある部分だけ色を変えることは可能でしょうか?
>>というか、文字の色自体がFormのプロパティを探しても??です。
>>
>>よろしくお願い致します。
>
> Windowsの仕様ですからねぇ。
> 2000以前ならば、画面プロパティのデザインに依存するし...
> XPで視覚スタイルが有効なら、視覚テーマに依存するし...
> Windowsの仕様を考慮した上で、仕様決定すべきだと思うんですが。
>
> #「ある部分だけを変える」のは不可能と思っていいでしょう。
> # SDKのCreateWindowEx()で出来ないくらいだし。
>
> 擬似的に、そのウィンドウより前面の透明なダイアログで、
> グラフィック文字でも乗っければできるかもしれませんが。

うーん、残念。
何か一番上がさみしいので、どの画面から渡ってきた、みたいな
Form1 > Form2 > Form3 で(今Form3の時"Form3"の色かえる)って感じが
出来ればなぁ、と思ったのですが・・・。

単純には不可能と分かるだけでも、たいへん助かります。
ありがとうございました。
解決済み!
  • 題名: Re[3]: Me.Textの表示
  • 著者: java.lang.Nullpo
  • 日時: 2004/08/18 15:58:35
  • ID: 5639
  • この記事の返信元:
  • この記事への返信:
    • (なし)
  • ツリーを表示
2004/08/19(Thu) 09:11:32 編集(投稿者)

■No5638に返信(Shinoさんの記事)
> うーん、残念。
> 何か一番上がさみしいので、どの画面から渡ってきた、みたいな
> Form1 > Form2 > Form3 で(今Form3の時"Form3"の色かえる)って感じが
> 出来ればなぁ、と思ったのですが・・・。

お気持ちは重々判ります。

> 単純には不可能と分かるだけでも、たいへん助かります。
> ありがとうございました。

これをやるならば基底FormクラスでPrivateな透明Formを、
保持させてやる方法が楽だと思ったのですが、如何せん面倒です。

 ・タイトルバーの幅と高さを考慮しなくてはならない。
 ・画面デザインで設定されたフォントとフォントの大きさを使用するのが望ましい。
 ・表示させる対象Formが、移動またはリサイズしたら、それらも移動させる必要がある。
 ・リサイズしてダイアログ幅が狭くなった時に、省略(右端にでる「...」のコト)が面倒。

一応、透明なダイアログにLabelコントロールを動的に配置し、
メソッドで表示文字と文字色を作成し、タイトルバーに乗っけることはできましたので、
その画像をアップ[↓]します。

■追加

 この透明ダイアログをひとつのFormとしておき、
 もう1つ基底Formをこの透明ダイアログをプライベートメンバで保持させてやり、
 継承をさせる方法なら、幾分か楽で実現もできます。
(この記事にはファイル"MacWintosh2.jpg"が添付されていましたが、削除されました。)
解決済み!
> Formの一番上の文字は、(Me.)Textr = "〇〇"で表示出来ますが、
> この文字のある部分だけ色を変えることは可能でしょうか?
> というか、文字の色自体がFormのプロパティを探しても??です。

別案として、タイトルバーの直下にPictureBoxでも配置して、
そこに文字列を描画するようにしてはいかがでしょう?
java.lang.Nullpoさん、よねKENさん、おはようございます。

今回は、ユーザーの希望というより、私の趣味で実現出来たら・・・だったので、
(Me.)Textr = "〇〇"だけで置いときます。
なんかこんなことくらい、簡単に出来てもいいのでは?っていうのが出来なかったりして、難しいですね・・・。

余談ですが、例えばDatetimePickerって和暦に出来るかどうか調べるだけで
大変でした。
結局、システム日付を和暦にすれば、2004年じゃなく、16年とはなりますが、ユーザーのパソコンのそんなところの設定をいじるのはイヤだし、でも作っているシステムは全部和暦で表示 (ex.平成16/09 ユーザー希望) しているし・・・。
解決済み!
  • 題名: Re[3]: Me.Textの表示
  • 著者: java.lang.Nullpo
  • 日時: 2004/08/23 10:25:31
  • ID: 5739
  • この記事の返信元:
  • この記事への返信:
    • (なし)
  • ツリーを表示
■No5728に返信(Shinoさんの記事)
> java.lang.Nullpoさん、よねKENさん、おはようございます。
>
> 今回は、ユーザーの希望というより、私の趣味で実現出来たら・・・だったので、
> (Me.)Textr = "〇〇"だけで置いときます。
> なんかこんなことくらい、簡単に出来てもいいのでは?っていうのが出来なかったりして、難しいですね・・・。

OSに依存することを、こんなことくらいとは言いがたいですね。
WindowsにはWindowsなりのGUIのポリシというものがあります。
それに、クレームをつけてもどうしようもありません。
またそれらを無視して、開発を行うことはユーザにとっても統一感がなくて嫌う人が多いです。

# OS側を騙したりするようなロジックは、絶対どこか危ないものです。

どんな開発に対応できるようなOSや言語は作りようがありません。
作れてしまっても、機能だけゴチャゴチャされても混乱してしまいます。

# 拘りを持つことは大変良いことだと思いますが。



> 余談ですが、例えばDatetimePickerって和暦に出来るかどうか調べるだけで
> 大変でした。
> 結局、システム日付を和暦にすれば、2004年じゃなく、16年とはなりますが、ユーザーのパソコンのそんなところの設定をいじるのはイヤだし、でも作っているシステムは全部和暦で表示 (ex.平成16/09 ユーザー希望) しているし・・・。

どうしてもやりたいものを実現させるために、
カスタムコントロールなんぞの機能が用意されているのではないかと思います。
また、それらは非常に簡単に拡張できます。(継承という概念によって)

# .NETの、最低限の機能をいかに拡張させていくかは、PGの自由です。
# あまり、偏ったコントロールを数多く用意されても混乱するだけですし、
# 窮屈すぎて利用できなくなってしまうかと思います。
# 必要な機能は自分で拡張させてください。
解決済み!

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