- PR -

C# フォームアイコン

投稿者投稿内容
NEO
大ベテラン
会議室デビュー日: 2005/10/02
投稿数: 104
投稿日時: 2006-05-27 14:12
アイコンの件は解決しました。
原因はよくわかりませんでしたが。

引用:

もしかして「ベースクラス」がVisual Studioでのレンダリングができるように作られて
いないのではないですか?



ベースクラスはデザイナで表示できます。

引用:

コード:
public class MyForm : System.Windows.Forms.Form {
}



2005 では、クラスとして定義したファイルの先頭に上記のクラスが書かれていないとデザイナが開きません。
この辺りは大丈夫ですか?



System.Windows.Forms.Form を継承するという文ですか?
書いてはいません。

コード:
public class MyForm : <ベースクラス> {
}


としか書いていません。
R・田中一郎
ぬし
会議室デビュー日: 2005/11/03
投稿数: 979
投稿日時: 2006-05-27 14:18
引用:

NEOさんの書き込み (2006-05-27 14:12) より:

アイコンの件は解決しました。
原因はよくわかりませんでしたが。


・・・(^▽^;)

引用:

NEOさんの書き込み (2006-05-27 14:12) より:

ベースクラスはデザイナで表示できます。

(中略)

System.Windows.Forms.Form を継承するという文ですか?
書いてはいません。

コード:
public class MyForm : <ベースクラス> {
}


としか書いていません。



ベースクラスが表示できるのだとすると、ファイルの最初のクラスとして

コード:
public class MyForm : <ベースクラス> {
}



これだけのコードを書いてやれば開く筈なんですが・・・ダメなんですよね?
(−−;)う〜む
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2006-05-27 21:10
引用:

NEOさんの書き込み (2006-05-27 14:12) より:

System.Windows.Forms.Form を継承するという文ですか?
書いてはいません。

コード:
public class MyForm : <ベースクラス> {
}


としか書いていません。


で、その plublic class MyForm の行は、ファイルで一番最初に宣言されているクラスですか?   というのが、2006-05-27 14:05 R・田中一郎さんの指摘です。
NEO
大ベテラン
会議室デビュー日: 2005/10/02
投稿数: 104
投稿日時: 2006-05-27 21:59
引用:

で、その plublic class MyForm の行は、ファイルで一番最初に宣言されているクラスですか?   というのが、2006-05-27 14:05 R・田中一郎さんの指摘です。



当然ですが、クラス宣言の前にはusing部 や 名前空間宣言部があります。
クラス宣言が最初にこないコーディング手法があるんですか?
ベースクラスはVSで自動的に作られ、デザイナ以外では編集していません。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-05-27 22:40
引用:

NEOさんの書き込み (2006-05-27 21:59) より:

当然ですが、クラス宣言の前にはusing部 や 名前空間宣言部があります。


一連のお話を聞く限り、NEO さんのコーディングには問題ないと思われます。
おおかた、Visual Studio お得意のリソース破壊にあっただけかもしれませんね。
(だから、継承フォームは '仕様上' も '使用上' も嫌いですw)

蛇足ですが、

引用:

クラス宣言が最初にこないコーディング手法があるんですか?


1 つのファイルに複数のクラスが混在していても良いわけですから、
当然、Form クラスの定義より前に別のクラスなどを配置することもできるわけです。

この場合、アイコンはコンポーネント クラスのアイコンになります。
というより、先頭でなくとも、コンポーネント クラス扱いを受けるようです。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
NEO
大ベテラン
会議室デビュー日: 2005/10/02
投稿数: 104
投稿日時: 2006-05-27 22:48
VSで表示されるエラーは、

「ドキュメント読み込み中にエラーが発生しました。このエラーを修正してからサイドドキュメントを読み込んでください。エラーメッセージは以下の通りです。
”<ベースクラス>のインスタンスの作成中に例外が発生しました。例外はオブジェクト参照がオブジェクト インスタンスに設定されていません。”です。」

でした。

[ メッセージ編集済み 編集者: NEO 編集日時 2006-05-27 22:49 ]
R・田中一郎
ぬし
会議室デビュー日: 2005/11/03
投稿数: 979
投稿日時: 2006-05-28 09:53
引用:

NEOさんの書き込み (2006-05-27 22:48) より:

「ドキュメント読み込み中にエラーが発生しました。このエラーを修正してからサイドドキュメントを読み込んでください。エラーメッセージは以下の通りです。
”<ベースクラス>のインスタンスの作成中に例外が発生しました。例外はオブジェクト参照がオブジェクト インスタンスに設定されていません。”です。」


デザイナを開く時のエラーですよね?
サブクラスがベースクラスのインスタンスを生成する際に、オブジェクト参照がオブジェクトインスタンスに設定されていないために例外エラーが発生しているとのことですが、そもそもオブジェクト参照って何の?って話ですよね。自分自身?

引用:

じゃんぬねっとさんの書き込み (2006-05-27 22:40) より:

1 つのファイルに複数のクラスが混在していても良いわけですから、
当然、Form クラスの定義より前に別のクラスなどを配置することもできるわけです。


そういうことでした。わかりにくくて申し訳ありませんでした。
NEOさんのお話から、この辺りも問題ないかと思ったのですが、一応確認させていただきました。

引用:

NEOさんの書き込み (2006-05-27 21:59) より:

一連のお話を聞く限り、NEO さんのコーディングには問題ないと思われます。


そうなんですよね。なので何が原因なのかさっぱりです。

デザイナの表示は、ユーザーコントロールや派生させたコントロールを後から編集すると表示しなくなったり、内部でエラーが生じたり「さわるな」と書いてある部分を触っちゃて表示されなくなったりと、いろいろな要因がある訳ですが。
こういった場合は、再起動したりビルドしなおすとなおると思いますし・・・

#リソース破壊・・・そういうこともあるんですね。

#引用部分の指定が間違っていたので修正

[ メッセージ編集済み 編集者: R・田中一郎 編集日時 2006-05-28 10:48 ]
かるあ
ぬし
会議室デビュー日: 2003/11/16
投稿数: 1190
お住まい・勤務地: センガワ→ムサシノ
投稿日時: 2006-05-28 10:30
引用:

NEOさんの書き込み (2006-05-27 22:48) より:

「ドキュメント読み込み中にエラーが発生しました。このエラーを修正してからサイドドキュメントを読み込んでください。エラーメッセージは以下の通りです。
”<ベースクラス>のインスタンスの作成中に例外が発生しました。例外はオブジェクト参照がオブジェクト インスタンスに設定されていません。”です。」


継承フォームを使用したときによく出るメッセージですね(汗
でも 田中さん のおっしゃっているようにビルドしたり、デザイナを開きなおしたり
VisualStudioを再起動したりするとなおるんですけれどね

基底クラスがDLLになっていることに問題があるのかもしれませんね
もし出来るのなら一度DLLに格納されいるフォームを
自分のプロジェクトに移動して、そちらを継承したらどうなるでしょうか

スキルアップ/キャリアアップ(JOB@IT)