C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

構造体から値をもってきたい


(過去ログ 3 を表示中)

[トピック内 10 記事 (1 - 10 表示)]  << 0 >>

■3533 / inTopicNo.1)  構造体から値をもってきたい
  
□投稿者/ あらら 二等兵(7回)-(2006/05/12(Fri) 09:13:19)

分類:[C#] 


分類:[C#] 

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

Class1に構造体を宣言して、Form1から値を設定し、Form2で設定した値を取得しよう
と思っています。
そこで、下記の様な感じで記述しようとしたのですが、Form1で設定した値をForm2で
どのように持ってこればよいのかわかりません。

基本的な質問なのかもしれませんが、ご教授いただけると幸いです。

---------------
/* Class1.cs */
Class1
{
Struct A
{
int _X;
public int X
{
get { return _X; }
set { _X = value; }
}
}
}

/* Form1.cs */
private void button1_Click(object sender, EventArgs e)
{
Class1.StructPoint a = new Class1.StructPoint();
a.X = 1;
}

/* Form2.cs */
private void button1_Click(object sender, EventArgs e)
{
//ここでどう記述すれば、Form1で設定した値を
//もってこれるのでしょうか?
}

0
引用返信 編集キー/
■3534 / inTopicNo.2)  Re[1]: 構造体から値をもってきたい
□投稿者/ Blue 一等兵(27回)-(2006/05/12(Fri) 09:16:47)

分類:[C#] 

Form1とForm2の依存関係がワカリマセン。

Form1からForm2を表示しているのであれば、そのとき(表示のとき)にClass1の情報
を渡すようにすればよいのではないでしょうか?

0
引用返信 編集キー/
■3535 / inTopicNo.3)  Re[2]: 構造体から値をもってきたい
□投稿者/ あらら 二等兵(8回)-(2006/05/12(Fri) 09:59:22)

分類:[C#] 

返信ありがとうございます。

> Form1とForm2の依存関係がワカリマセン。
Blueさんが言われるとおり、Form1からForm2を表示しています。

> > Form1からForm2を表示しているのであれば、そのとき(表示のとき)にClass1の情報
> を渡すようにすればよいのではないでしょうか?
Class1の情報の渡し方というのはどのようにすればよいのでしょうか。。。

0
引用返信 編集キー/
■3537 / inTopicNo.4)  Re[3]: 構造体から値をもってきたい
□投稿者/ Blue 一等兵(28回)-(2006/05/12(Fri) 10:12:22)

分類:[C#] 

よく見たら
> StructPoint
って何でしょうか?Sturct Aのこと?

1.Form2 に StructPoint の情報を入れるメンバ変数を追加。
2.Form2 に StructPoint を設定する関数またはプロパティを用意
3.ShowやらShowDialogの前に、2でつくった関数を使って、Form1のStructPoint を
渡す。
4.Form2 の button1_Click ではメンバ変数からその情報を使う。

ただし、
>private void button1_Click(object sender, EventArgs e)
>{
> Class1.StructPoint a = new Class1.StructPoint();
> a.X = 1;
>}
のように、すぐに StructPoint を破棄している場合は、これまたメンバ変数に持ったりして情報を保持する必要があります。
(Form1のbutton1_ClickでForm2を表示するならばこれでも問題ないですが。)


0
引用返信 編集キー/
■3538 / inTopicNo.5)  Re[4]: 構造体から値をもってきたい
□投稿者/ あらら 二等兵(10回)-(2006/05/12(Fri) 10:22:33)

分類:[C#] 

返信ありがとうございます。

>StructPoint
> って何でしょうか?Sturct Aのこと?
すみません。Struct Aのことです。

> 1.Form2 に StructPoint の情報を入れるメンバ変数を追加。
> 2.Form2 に StructPoint を設定する関数またはプロパティを用意
> 3.ShowやらShowDialogの前に、2でつくった関数を使って、Form1のStructPoint を
> 渡す。
> 4.Form2 の button1_Click ではメンバ変数からその情報を使う。
ありがとうございます。やってみます。

0
引用返信 編集キー/
■3541 / inTopicNo.6)  Re[5]: 構造体から値をもってきたい
□投稿者/ あらら 二等兵(11回)-(2006/05/12(Fri) 11:53:46)

分類:[C#] 

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

教えていただいたやり方で下記のように記述すれば、Form2で値が取れました。
ありがとうございます。

でも、できれば、Class1のみを介して値のやり取りをしたいと考えているので
すがそういったことは可能なのでしょうか?
(たとえば、Form1でXに値を設定後、任意の複数のFormからXの値を取得できる
ような感じ。その時、Form1からは任意の複数のFormには値を渡さなくてもよい
ようにしたいです。。。)

質問ばかりで申し訳ないですが、アドバイス等いただけたら幸いです。

-----------------------------
/* Class1.cs */
//変更なし

/* Form1.cs */
//ボタンクリックイベントに以下を追加
Form2 f2 = new Form2()
f2.i = a.X;
f2.Show();

/* Form2.cs */
private int _i;
public int i
{
get { return _i; }
set { _i = value; }
}
private void button1_Click(object sender, EventArgs e)
{ // _i を使用 }

0
引用返信 編集キー/
■3542 / inTopicNo.7)  Re[6]: 構造体から値をもってきたい
□投稿者/ Blue 一等兵(29回)-(2006/05/12(Fri) 11:59:25)

分類:[C#] 

Class1のStructPointと呼ばれるものが全体で1つしか存在しないのであれば、
staticなメンバ変数にしてあげると良いかも。

※ソースコードを乗せるときは図表モードで。

0
引用返信 編集キー/
■3552 / inTopicNo.8)  Re[7]: 構造体から値をもってきたい
□投稿者/ あらら 二等兵(12回)-(2006/05/12(Fri) 16:31:54)

分類:[C#] 

返信ありがとうございます。

> Class1のStructPointと呼ばれるものが全体で1つしか存在しないのであれば、
> staticなメンバ変数にしてあげると良いかも。
すみません。。。staticをどのように宣言して使用すればよいのでしょうか?
StructPointをstaticで宣言して、オブジェクトを作成しないようにしてみたの
ですが、コンパイルでエラーになってしまいます。。。

> ※ソースコードを乗せるときは図表モードで。
以後、気おつけます。

0
引用返信 編集キー/
■3553 / inTopicNo.9)  Re[8]: 構造体から値をもってきたい
□投稿者/ Blue 一等兵(33回)-(2006/05/12(Fri) 17:12:40)

分類:[C#] 

2006/05/12(Fri) 18:15:05 編集(投稿者)

コンパイルエラーになったソースを載せてもらうのが一番良いのですけど。

一応大雑把なサンプル)

public class Class1{
public struct StructPoint{
static int _X;
public static int X{
get { return _X; }
set { _X = value; }
}
}
}
public class Test1{
public static void Main( string[] args ){
Class1.StructPoint.X = 10;

Test2 t2 = new Test2();
t2.Show();

Test3 t3 = new Test3();
t3.Show();

Show();
}
public static void Show(){
System.Console.WriteLine( "{0}", Class1.StructPoint.X );
}
}
public class Test2{
public void Show(){
System.Console.WriteLine( "{0}", Class1.StructPoint.X );
Class1.StructPoint.X = 20;
}
}
public class Test3{
public void Show(){
System.Console.WriteLine( "{0}", Class1.StructPoint.X );
Class1.StructPoint.X = 30;
}
}


0
引用返信 編集キー/
■3596 / inTopicNo.10)  Re[9]: 構造体から値をもってきたい
□投稿者/ あらら 二等兵(13回)-(2006/05/16(Tue) 08:56:39)

分類:[C#] 

返信ありがとうございます。

上記で教えて頂いたやり方で解決しました。
ありがとうございます。

解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -