- - PR -
FORMオブジェクトについて
1
投稿者 | 投稿内容 | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2006-01-10 17:37
test.csとform1.cs(フォームクラス)があり、form1.csに公開メソッドにInit(string label)を用意します。
test.csでは、以下のようにしてform1の公開メソッドをコールしたいのですが、上手く呼び出せません。(コンパイルエラーになります。) -------------------------------------- Form frmTest = new form1(); frmTest.Init("フォーム1"); frmTest.Show(); -------------------------------------- なお、「form1 frmTest = new form1();」のようにすれば上手くいくのですが、test.csは派生元クラスとして使用したいので、上記例のような形でユーザフォームクラスを呼び出したいと考えています。 上記例のようなフォームクラスの呼出しはダメなのでしょうか? 分かる方いれば、よろしくお願いします。 | ||||||||||||||||
|
投稿日時: 2006-01-10 17:46
System.Windows.Forms.Form クラスは、 Guns さんが Form1 クラスに実装した Init メソッドを知らないからです。
派生元クラスとして...? (^^;) Form1 だけでなく、様々なフォームで Init を呼び出したいのであれば、 インターフェイス、ポリモーフィズムなどを勉強してみてください。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||||||||||
|
投稿日時: 2006-01-10 18:04
WindowsFormを継承可能にしたいということでしたら、その目的は達成できるでしょう。 以下のページを読んでみてください。 MSDN Japan Home > MSDN Library Japan > Visual Studio .NET による開発 > Windows アプリケーションの作成 > Windows フォーム Visual Studio Windows フォームの継承 http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/vbcon/html/vbconFormInheritance.asp?frame=true リンクをたどって多くの情報を読むことになるかと思います。 継承についてはもっと簡単に説明されているサイトもありますので、検索することをお勧めします。 ちなみに私は、Formの継承はあまりお勧めしません。 必要であるなら完全に否定するものではありませんが、必要ではないなら他の手段も検討すべきでしょう。 _________________ たつごろー codeseek こみゅぷらす | ||||||||||||||||
|
投稿日時: 2006-01-10 18:13
みなさん、回答ありがとうございます。
まずは、教えていただいたサイトなどで勉強してみます。 | ||||||||||||||||
|
投稿日時: 2006-01-10 18:57
インターフェイスについてです。
上記のように、Init メソッドが存在していることを示すインターフェイスをどこかで定義します。
上記のように、各フォームにこの IInit インターフェイスを実装します。
Test.cs で IInit インターフェイスを通じて Init メソッドを呼び出します。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 |
1