- - PR -
C#子フォームおよびクラスより親フォームの背景色の変更
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2005-07-26 17:06
又質問させて頂きます。
親フォームにて private void text1_Click(object sender, System.EventArgs e) { int iRet; //mainclassの参照ポインタを設定 mainclass.f1 = this; frmEntry011sub1 f2 = new frmEntry011sub1(); f2.Show(); } にて子フォームを呼び出しています。 子フォームにて public frmEntry011 f1; private void frmEntry011sub1_Load(object sender, System.EventArgs e) { f1.txt1.BackColor = Color.MediumSeaGreen; } とした場合エラーになってしまいます。 テキストの場合 public static frmEntry011 Form1Instance { get { return _form1Instance; } set { _form1Instance = value; } } //TextBoxを取得、設定するためのプロパティ public string TextBoxText1 { get { return text1.Text; } set { text1.Text = value; } } を親フォームに設定し frmEntry011.Form1Instance.TextBoxText1 = "あああ" を子フォームに設定することで 子フォームから親フォームのテキストに"あああ"を代入する事が出来たのですが 子フォームから親フォームのテキストの背景色を変更したい場合 どの様にすれば実現出来ますでしょうか? 親フォームに public int SisikiColor() { this.text1.BackColor = MediumSeaGreen; } と記述し 子フォームから SisikiColor()を呼んでみたのですが コントロールのイベント等フォームの持っているイベントでしか 有効にならない様でエラーは無く通るのですが 色は変わらないです。 分かりにくいと思いますが 教えていただけると幸いです。 | ||||
|
投稿日時: 2005-07-26 17:32
まず、具体的にどんなエラーが発生するのでしょうか。 | ||||
|
投稿日時: 2005-07-26 17:35
f1 ってインスタンス化してますか?
_________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||
|
投稿日時: 2005-07-26 17:47
早速のお返事ありがとうございます。
vincent様 型または名前空間名'Color'が見つかりませんでした。ディレクティブを使うか アセンブリ参照を使ってくださいです。 じゃんぬてっと様 インスタンス化してます。 | ||||
|
投稿日時: 2005-07-26 17:58
NullReferenceExceptionかと予想してましたが…そちらでしたか。
Colorsを完全限定名System.Drawing.Colorsで記述するか using System.Drawingステートメントを使ってください。 あと、コンパイル時にSystem.Drawing.dllを参照するようにしてください。 続きはビルドができてから。 | ||||
|
投稿日時: 2005-07-26 18:05
vincentさん
お返事ありがとうございます。 Colorsを完全限定名System.Drawing.Colorsで記述するか using System.Drawingステートメントを使ってください。 あと、コンパイル時にSystem.Drawing.dllを参照するようにしてください。 をやりました。 その後 vincent様予想の NullReferenceExceptionが出てしましました。 これはどの様な意味でどうすれば良いでしょうか?? 何度もすいません。 | ||||
|
投稿日時: 2005-07-26 18:16
NullReferenceExceptionが発生するということは
f1.txt1.BackColor = Color.MediumSeaGreen; のf1もしくはtxt1の値がnullなので、ステートメントを 正しく実行できません、ということです。 子フォームを作ってから表示するまでのコードは frmEntry011sub1 f2 = new frmEntry011sub1(); f2.Show(); の2行ですが、f2のフィールド public frmEntry011 f1; のf1にはいつ参照を設定していますか? | ||||
|
投稿日時: 2005-07-28 09:36
vincent様
おはようございます。 お返事遅くなりすいませんでした。 namespace DMESentry011 { /// <summary> /// Form1 の概要の説明です。 /// </summary> public class frmEntry011sub1 : System.Windows.Forms.Form { //frmEntry011への参照ポインタ public frmEntry011 f1; で参照の設定をしています。 そしてLode時に BackColorの設定をしてます。 |