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

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

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

Re[1]: 配列の渡し方について


(過去ログ 117 を表示中)

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

■68722 / inTopicNo.1)  配列の渡し方について
  
□投稿者/ くぅ (1回)-(2013/11/09(Sat) 12:40:24)

分類:[C#] 

Windows7
Microsoft Visual Studio 2010

フォームにボタンを1つとボタンを押したときの処理を挿入し、
以下で作成したユーザーコントロールを1つ張り付けます

動作的には問題なく表示も
"0 : 0 : 0 : 1"
"test00 : test01"
と表示されたのですが・・・・

フォームに張り付けたボタンのbutn3 に名前を変更すると
プロパティ うぃんどうが表示され
[プロパティの値が無効です]が表示
詳細は[配列ランク '2' が高すぎます。Visual Studio は、ランク 1 の配列の保存、読み込みのみ行えます。]
となります。

どうすればよいのでしょうか?


// ボタンクリック時の処理
private void button1_Click(object sender, EventArgs e)
{
 MessageBox.Show(test1.MyArrays[0,0].Text + " : " + test1.MyArrays[0,1].Text);
 test1.MyArrays[0,0].Text = "test00";
 test1.MyArrays[0,1].Text = "test01";
 MessageBox.Show(test1.MyArrays[0,0].Text + " : " + test1.MyArrays[0,1].Text);
}

// ユーザーコントロール
public partial class Test : UserControl
{
 MyArray[,] myarray;

 public MyArray[,] MyArrays
 {
  get { return (myarray); }
  set { myarray = value; }
 }

 public Test()
 {
  InitializeComponent();

  myarray = new MyArray[3,3];
  for (int ix = 0; ix < 3; ix++) {
   for (int iy = 0; iy < 3; iy++) {
    myarray[ix,iy] = new MyArray();
    myarray[ix,iy].Text = ix.ToString() + " : " + iy.ToString();
   }
  }
 }
}

public class MyArray : object
{
 string text;

 public string Text
 {
  get { return(text); }
  set { text = value; }
 }
}
引用返信 編集キー/
■68725 / inTopicNo.2)  Re[1]: 配列の渡し方について
□投稿者/ shu (418回)-(2013/11/09(Sat) 14:24:56)
No68722 (くぅ さん) に返信

プロパティウィンドウにVisual Studioが処理出来ない
2次元配列を表示しているのが原因と思われますので、
System.ComponentModel.Browsable属性を使用して
プロパティウィンドウへのプロパティ表示を行わせない。
System.ComponentModel.DesignerSerializationVisibility属性を
使用してデザイン時コードを作らない。
などしてみてはどうでしょう?
引用返信 編集キー/


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

このトピックに書きこむ

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

管理者用

- Child Tree -