簡単に自己紹介します。
C#にてフォームアプリを作り始めようとしている初心者です。
C言語では簡単なプログラムを自作したことがあります。
そもそもオブジェクト指向や、C#の文法に関する知識がない(参考書の流し読みなど)ので、
知識をつけながら作るつもりなので頓珍漢なことをたくさんやっています。
本題です。
button1を押すたびに、
新たなbutton[i]が生成され、
その生成されたbutton[i]を配列に加えて、
その生成されたbutton[i]を押すと、
さらに新たなbutton[i]が生成され。。。
といったようなことをやろうとしているのですが、
###エラー
”
CS1061 'object' に 'Click' の定義が含まれておらず、型 'object' の最初の引数を受け付ける拡張メソッド 'Click' が見つかりませんでした。using ディレクティブまたはアセンブリ参照が不足していないことを確認してください。
”
が出ます。
これを解決するにはどのようにすればいいでしょうか。
知恵を貸していただければ幸いです。
###該当のソースコード
C#
1 2using System; 3using System.Collections.Generic; 4using System.ComponentModel; 5using System.Data; 6using System.Drawing; 7using System.Linq; 8using System.Text; 9using System.Threading.Tasks; 10using System.Windows.Forms; 11using System.Collections; 12 13namespace WindowsFormsApp1 14{ 15 public partial class Form1 : Form 16 { 17 public Form1() 18 { 19 InitializeComponent(); 20 } 21 // ------------------------------ 22 // クラスのメンバー変数として宣言 23 // ------------------------------ 24 // ボタンのY座標 25 int y = 0; 26 27 // ボタンを格納しておく動的リスト 28 // (動的に数が増えていく物はArrayListで管理するのが楽です) 29 ArrayList buttons = new ArrayList(); 30 31 // ------------------------------ 32 // ボタン1が押された時の処理 33 // ------------------------------ 34 private void button1_Click(object sender, System.EventArgs e) 35 { 36 // ボタンObjectを作成 37 Button myButton = new Button(); 38 39 // ボタン文字列を定義 40 myButton.Text = "AAA"; 41 42 // ボタン位置を設定 43 myButton.Location = new Point(0, y); 44 45 // ボタンを追加 46 this.Controls.Add(myButton); 47 48 // ボタン同士が重ならないよう、位置をすこしずらす 49 y = y + 24; 50 51 // ボタンだけを集めた動的リストに今作ったパネルを追加 52 buttons.Add(myButton); 53 54 buttons[0].Click += new EventHandler(button1_Click); 55 56 } 57 58 private void button2_Click(object sender, EventArgs e) 59 { 60 List<TextBox> clist = new List<TextBox>(); 61 62 int y = 64; 63 int x = 64; 64 for (int i = 0; i < 5; i++) 65 { 66 TextBox tb = new TextBox(); 67 tb.Top = y; 68 tb.Left = x; 69 tb.Height = 24; 70 tb.Width = 180; 71 this.Controls.Add(tb); 72 73 clist.Add(tb); 74 y = y + 24 + 2; 75 x = x + 50; 76 } 77 } 78 }
###試したこと
使っているクラスの中にClickメソッドが含まれていないと思い、
buttons[0].Click += new EventHandler(button1_Click);
の部分を
this.buttons[0].Click~だとか、
WindowsFormApp1.Form.buttons[0].Click~とかに変えてみたりしました。
###補足情報(言語/FW/ツール等のバージョンなど)
visualstudio2017 C# windowsフォームアプリケーション

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/12/18 09:12
2017/12/18 09:15
2017/12/18 09:20 編集
2017/12/19 00:07
2017/12/19 03:22
2017/12/19 04:14
2017/12/19 05:42
2017/12/19 06:44
2017/12/19 07:00