お世話になります。
static void Main()内でインスタンス化されたオブジェクトにフォームからアクセスするにはどうしたらよいでしょうか
new Form1()をするとき、thisを渡そうとすると、「静的(略)では利用できません」と怒られます。
かといって、何も渡さずにhoge.text1のように呼び出そうにも呼び出せません…
また、同じようにMain内で宣言した変数(stringですが)にどうやってフォームからアクセスすればよいのかがわかりません。
わかりにくいかもしれませんが、質問をまとめるとこんな感じです
- 静的クラス内の静的メソッド内(Main内)で宣言された変数に、その中(Main内)でインスタンス化されたオブジェクトからアクセスするには
- 静的クラス内の静的メソッド内(Main内)でインスタンス化されたオブジェクトに、静的クラス内の静的メソッド内(Main内)でインスタンス化された別のオブジェクトからアクセスする方法
よろしくお願いいたします。
以下、ソースです。
※基本的にVisualStudioの吐いたソースです。タイポがあるかもしれませんがご容赦ください
実際に運用したいのは、
static Main()内でアプリの設定ファイル等読み込み、オブジェクトとして保存。
↡
メインフォーム起動(もちろん設定情報を利用する→ユーザーが変更)
↡
最後にファイルへ書き込み
です。(xmlを使っています)
C#
1//namespaceは省略します。 2static class Program{ 3 [STAThread] 4 static void Main(){ 5 var hoge = new fuga();//←アクセスしたいのはここでインスタンス化されたオブジェクト 6 string moji = "this is a moji". 7 8 Application.EnableVisualStyles(); 9 Application.SetCompatibleTextRenderingDefault(false); 10 application.Run(new Form1()); 11 } 12 13 public class fuga{ 14 public string text1 = "this is a mojimoji"; 15}
C#
1public partical class Form1:Form{ 2 public Form1(){ 3 InithializeComponent(); 4 textBox1.Text = hoge.text1; //←こんな風にしたい 5 textBox2.Text = Main.moji; //←こんな風にしたい 6 } 7
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。