質問 |
||
| 質問者:lain_003 | イベントパンドラで作成したインスタンスを、別のイベントパンドラで使う | |
|---|---|---|
困り度:
|
Visual studio 2005 のC#で勉強をしているのですが、インスタンスをグローバル変数のように宣言する仕方がわからなくてこまっています。 ソースコードで説明すると、 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; namespace tesuto { public partial class Form1 : Form { public class car { public string a; } public Form1() { InitializeComponent(); car bike = new car();//このインスタンスをpicturebox //_Clickのイベントパンドラの中 //で使いたい bike.a = "asd"; } private void pictureBox_Click(object sender, EventArgse) { string b; b = bike.a;//このようにしたいが、実際はエラーがでる } } } はじめての質問&クラスがなんたるかをしっかり理解していないので わかりにくい質問になったかもしれませんが、よければご回答ください。よろしくお願いします。 |
|
質問投稿日時:08/05/02 16:52 質問番号:3992510 |
||
回答良回答20pt |
|
| 回答者:himajin100000 | /* Visual StudioのようなIDEで自動的に作ってもらうと デフォルトインスタンスとかいう仕組みで,どうしても世界が見えないかもしれないけど 作らずに書くとこんな感じ。こっちの方が長いけど,却って自分には解りやすい。 */ namespace test { public partial class Form1 : System.Windows.Forms.Form { private car bike; //変数宣言を外に出す。ローカル変数じゃなく,クラスのメンバ変数。 private System.Windows.Forms.PictureBox picturebox1; //car.B等のように共通して用いる変数の場合 //staticを使うことになる。今回の事例とは違うのかな、って気がするので //解説する気すらないが。 public class car { public string a; //本当は以下のような形式が望ましい。 private string b; public string B{ set{ b = value; } get{ return b; } } } public Form1() { InitializeComponent(); bike = new car(); bike.a = "asd"; } public void InitializeComponent(){ this.Size = new System.Drawing.Size(800,600); picturebox1 = new System.Windows.Forms.PictureBox(); picturebox1.Size = new System.Drawing.Size(700,500); picturebox1.Left = 50; picturebox1.Top = 50; picturebox1.BackColor = System.Drawing.Color.Pink; picturebox1.Click += pictureBox_Click; this.Controls.Add(picturebox1); } private void pictureBox_Click(object sender, System.EventArgs e) { string b; b = bike.a;//このようにしたいが、実際はエラーがでる this.Text = b; } private static void Main(){ Form1 form1 = new Form1(); form1.ShowDialog(); } } } |
|---|---|
| 種類:アドバイス どんな人:一般人 自信:参考意見 |
|
| |
回答日時:08/05/02 17:59 回答番号:No.2 |
|
| この回答へのお礼 | なるほど!クラスのメンバ変数にするのですね。 盲点でした。 詳しい説明ありがとうございます。 |
回答良回答10pt |
|
| 回答者:episteme | メンバ変数にするだけかと。 |
|---|---|
| 種類:回答 どんな人:専門家 自信:自信あり |
|
| |
回答日時:08/05/02 17:58 回答番号:No.1 |
|
| この回答へのお礼 | そうですね。まだまだ自分のクラスの使い方の理解が、未熟でした。 精進します。 |