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

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

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

visual c# button 配列で宣言する方法

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

■88447 / inTopicNo.1)  visual c# button 配列で宣言する方法
  
□投稿者/ sorashi (1回)-(2018/09/01(Sat) 18:23:00)

分類:[C#] 

Visual StudioでC#でプログラムを行っています。

    this.button1.Location = new System.Drawing.Point(, )
	this.button1.Name = "button1";
    this.button1.Size = new System.Drawing.Size(, );
    this.button1.TabIndex = 1;
	this.button1.Text = "button1";
	this.button1.UseVisualStyleBackColor = true;
	this.button1.Click += new System.EventHandler(button1.Click_Click);

この部分の「button1」を、変数で宣言することはできないでしょうか?

入力した数のbuttonを生成するようなプログラムを作りたいので、buttonの名前を変数で宣言する方法があれば教えてください。



引用返信 編集キー/
■88448 / inTopicNo.2)  Re[1]: visual c# button 配列で宣言する方法
□投稿者/ 魔界の仮面弁士 (1804回)-(2018/09/01(Sat) 18:59:36)
No88447 (sorashi さん) に返信
> this.button1.Location = new System.Drawing.Point(, )
> この部分の「button1」を、変数で宣言することはできないでしょうか?

デザイナー画面で貼ったものだとしたら、Form1.designer.cs 側に
 private System.Windows.Forms.Button button1;
という Button 型の変数が既に作成されている状態であり、
button1 は既に変数になっていますね。


> 入力した数のbuttonを生成するようなプログラムを作りたいので、buttonの名前を変数で宣言する方法があれば教えてください。

名前で管理したいなら、生成した Button を
 private Dictionary<string, Button> buttons;
などに Add しておいては如何でしょうか。



> this.button1.Name = "button1";

自己生成するのであれば、Name プロパティは一意な名前である必要はありません。

親の Controls プロパティから列挙したい場合には一意な Name があった方が便利ですが、
管理の必要が無い場合、あるいは Dictionary などで自己管理している場合は、
Name は空のままでも困らないかも。


private void Form1_Load(object sender, EventArgs e)
{
  Panel panel = new FlowLayoutPanel
  {
    Parent = this,
    Dock = DockStyle.Fill,
    FlowDirection = FlowDirection.TopDown,
    AutoScroll = true,
    WrapContents = false,
  };
  for (int i = 1; i <= 30; i++)
  {
    var s = i.ToString();
    var button = new Button { Text = s };
    panel.Controls.Add(button);
    button.Click += delegate { MessageBox.Show(s); };
  }
}
引用返信 編集キー/

このトピックをツリーで一括表示


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

このトピックに書きこむ