- - PR -
C# フォームアイコン
1|2|3
次のページへ»
投稿者 | 投稿内容 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2006-05-24 00:26
フォームにアイコン(画面左隅に出るやつ)を設定する方法なんですが、
通常は、VSのデザイナでプロパティにICOファイルを設定すると思います。 ただ、サブクラス化したフォームクラスはデザイナでは表示できないので、設定できません。 ベースクラスのプロパティで設定するのかと思えばそうでもない。 サブクラス用に、リソースファイルを作成して、それをVSプロジェクトに追加し、 InitializeComponentメソッドで、リソースファイルからIconをGetObjectして設定(this.Iconに代入)しても、デフォルトアイコンのままでした。 これ以上何をすればいいか分かりません。教えてください。 | ||||||||||||
|
投稿日時: 2006-05-24 00:44
あれ?継承フォームでもデザイナは使用できますよね 継承元が抽象クラスになっているのかな
アイコンファイルからロードしたらうまくいきますか?
| ||||||||||||
|
投稿日時: 2006-05-24 00:54
VS2003ですが、フォームクラスをダブルクリックしても「表示できません」のエラーになります。 ちなみに、ベースクラスは抽象クラスではないです。
これって、プログラムを動かすためにICONファイルを動作環境に置く必要がありますよね? これしか方法がないのなら、仕方ないかも知れませんけど。 | ||||||||||||
|
投稿日時: 2006-05-24 01:26
おかしいですね、ベースクラスでエラーなんかが起きると デザイナが開けないことはありますけれど 「表示できません」のエラーについてもう少し詳しい情報ってありますか?
そうですね、new Icon(ファイル名) で設定するとアイコンファイルが必要になります リソースファイルの読み込みに失敗しているのか 他の原因でアイコンが読み込めないのか確認したかったんですけどね リソースマネージャからアイコンをGetObjectしたとき アイコンはちゃんとロードできていますか? ウォッチなんかを使って確認してみてください。 | ||||||||||||
|
投稿日時: 2006-05-26 11:49
かるあさんもご指摘されていますが、表示はできるはずで、ベースにしたクラスに 問題があるのではないかと思われます。 Visual Studioのデザイナでの表示のときに、表示内容を得るためにレンダリング処理が 走りますので、その中で、作られていないオブジェクトを見ているとか、表示するために はありえない値の変数値になっているとか、依存関係のあるファイルのパスが得られてい ないとか、そういう理由で表示できないのではないかと思います。 まず、なにも実装していない、空のFormから継承できることを確認してください。 その次に、必要なコードを少しづつ実装してみてください。 だめになったところが原因です。 これを解決すれば、元の質問も解決するのでしょうから、まずはお試しください。 _________________ たつごろー codeseek こみゅぷらす | ||||||||||||
|
投稿日時: 2006-05-27 12:28
ご紹介いただいた方法はまだ試していません。
サブクラスは、「新規項目の追加」で「継承フォーム」を選んで作成しました。 ベースクラスはDLLで、プロジェクトに参照設定しています。 このやり方がおかしいのですか? | ||||||||||||
|
投稿日時: 2006-05-27 14:03
いいえ。 もしかして「ベースクラス」がVisual Studioでのレンダリングができるように作られて いないのではないですか? という思いつきを書いただけです。 _________________ たつごろー codeseek こみゅぷらす | ||||||||||||
|
投稿日時: 2006-05-27 14:05
サブクラス化したフォームクラスですか? 2005しか使ったことがないので外しているかもしれませんが。
2005 では、クラスとして定義したファイルの先頭に上記のクラスが書かれていないとデザイナが開きません。 この辺りは大丈夫ですか?
InitializeComponent メソッドの内部を書き換えたってことですよね? 他のプロパティを試しに変更してみて、その値は正常に反映されますか? |
1|2|3
次のページへ»