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

フォーム間の処理について

環境/言語:[WindowsXP C# VisualStudio2010Express]
分類:[.NET]

お世話になっております。

今回は別のフォームがトリガとなり他のフォームの動作を開始するという感じのプログラムを作っていて、わからないことが出てきました。

Form1・Form2・Form3がありまして、Form1はデータの取得、Form2はデータの出力、Form3はトリガの役割をしています。
Form3のボタン処理などでForm1のコントロールのデータをForm2に出力させたいと思っています。
Form3のボタン押下時にForm1のメソッドを呼び出して値を保存しようと思っているのですが、Form3からForm1のメソッドにうまくアクセスできません。
何かいい方法はございませんでしょうか?

よろしくお願いいたします。
■No27205に返信(みさきさんの記事)
Form1,2,3の機能などは付加情報ですので、不具合とは直接関係ない情報と
なります。すると、今回の質問で不具合に関して説明された情報は、
> Form3からForm1のメソッドにうまくアクセスできません。
だけですか。。。それで十分な説明でしょうか?

>「安易な質問」とは?
http://dobon.net/vb/bbs/index.html#irresponsible

このサイトのサンプルにも別のフォームの情報を取得するものはあります。
普通に作ればうまくアクセスできます。勉強して無い人の普通じゃない
プログラムを基準に話をされても理解できません。
るしぇさんの後追いになりますが、

別のフォームのデータを取得、設定する
http://dobon.net/vb/dotnet/form/accessanotherformdata.html

で紹介している方法と同じ考え方でメソッドも呼び出すことができますので、お試しください。

もしできないようでしたら、具体的にどのようなコードをお書きになったのかを教えてください。
>るしぇさん

言葉が足りなかったようで申し訳ありません。
staticメンバやstaticメソッドを使って他のクラスからアクセスさせようとして苦戦苦闘してました。
staticメソッド内でテキストボックスのプロパティを呼び出そうとしたり・・・

>管理人さん
staticを使ったやり方を探していたので、見落としていました。
こちらの方法で解決できました。

ありがとうございました。
解決済み!
■No27211に返信(みさきさんの記事)
> staticメンバやstaticメソッドを使って他のクラスからアクセスさせようとして苦戦苦闘してました。
その static は必要なかったということでいいですか?

http://dobon.net/cgi-bin/vbbbs/cbbs.cgi?mode=al2&namber=27143&rev=&no=0
この質問の場合、インスタンスを返すプロパティは、インスタンスを
生成する前にアクセスする必要があり、しかも1つのクラスに対して
唯一であって構わないわけです。
そして、フォームのインスタンスが1つ確保できたのであれば、
他のメンバが static である必要は無いはずです。

そもそも、クラスは複製する事が前提です。画面上のコントロールを
デザイン画面から配置した時に自動でかかれるコードもそれが前提です。
それを static で扱おうとすれば、別フォームどころか自フォームの
操作も修正しないといけなくなるはずです。

目的、意味、効果を考えてプログラムしてください。
解決済み!

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