- - PR -
[C#.net質問]form1のメソッドを別のクラスから呼び出す。
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2006-08-04 22:53
最近になってVisualStudioでC#をはじめたばかりです。
自分で作成したクラス「Class1」から最初に作成された「form1」のメソッドを呼び出すにはどうしたらいいのでしょうか。 | ||||
|
投稿日時: 2006-08-04 23:04
連載 改訂版 C#入門
| ||||
|
投稿日時: 2006-08-04 23:08
一応一通り読んだつもりのですが・・・
イベント機能をつけばいいんでしょうか? もし間違っていたら詳しい範囲を教えていただけないでしょうかm( _ _)m | ||||
|
投稿日時: 2006-08-04 23:23
呼び出したいメソッドは自分でForm1に定義したメソッドでしょうか?
メソッドを他のクラスから呼び出す場合、そのメソッドの可視性はpublic、またはinternalである必要があります。 また、呼び出し元(この場合Class1)が、Form1のインスタンスを参照できる必要があります。 ”最初に作成されたform1”と言ってる辺り、恐らくotfさんがやりたいことは以下のようなことではないでしょうか?
わからない単語だらけだと思います。検索するなりして調べてみてください。 (ただ、一般的にFormを他のクラスから操作することはあまり好ましくありませんが…。 上に書いたコードはあくまでも”otfさんがやりたいことを実現するにはこういうコードになるよ”ということです。) | ||||
|
投稿日時: 2006-08-04 23:48
けんじさんの方法でform1のインスタンスの参照をClass1のコンストラクタに渡したらうまくいきました!
ずっと悩んでたので解決してすっきりしました。 ありがとうございます! | ||||
|
投稿日時: 2006-08-05 09:06
どのあたりが、好ましくないと仰るのでしょうか? Form1.Method1 メソッドは、Form1 のメンバに直接働きかけず、 Form1 に自発的に何かをさせようとするために用意されたメソッドですよね。 これすら好ましくないのであれば、Form に追加されるメンバは、 すべて、非公開にしないと好ましくないということになりますね。 たとえば、Form 間の連携はどうするのが好ましいと仰るのでしょうか? # "他のクラス" が、ビジネス ロジックだけのクラスということであれば、 # 必要なパラメータをまとめたデータクラスなどが '望ましい' と言えるでしょうけど。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||
|
投稿日時: 2006-08-05 14:21
otfさんのやろうとしていることが、ビジネスロジッククラスからFormの操作を行いたい(FormがClass1の処理結果を戻り値として受け取れば良い所を、Class1からForm1を操作することによってFormに設定するような。)ということなのだと勝手に思い込んでいました。 言葉足らずな言い方になってしまい、申し訳なかったです。 |
1