|
■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); }; } }
|