###前提・実現したいこと
私は、Visual Studioの環境で、とあるWebページを作るために、ASP.NETを用いて、プログラムの実行時に指定した数のボタンを作成するプログラムを構築したいと考えています。その際、以下のサイトを参考にして構築しました。
C#でボタンを動的に複数配置させる
コントロールの配列を作成する
手順としては、Visual Studioのファイル→新規作成→Webサイト→ASP.NET Web Siteを選択し、次にWeb SiteにWeb フォームを追加し、作られた「Default.aspx.cs」にコードを書きました。
###発生している問題・エラーメッセージ
[C#でボタンを動的に複数配置させる]のプログラムを真似してみて、実際にWebフォームに実装しようとしても、以下のようなエラーが出てしまい、うまく実装することができません。普通のC#とは異なり、Webフォームにおいての型Buttonには「Name」と「Top」の定義が含まれていないらしく、新たに定義をすればよいのならその方法を、そうでないのなら具体的にどのような書き方をすれば良いのかを教えていただきたいのです。
エラーメッセージ 'Button'に'Name'の定義が含まれておらず、型'Button'の最初の引数を受け付ける拡張メソッド'Name'が見つかりませんでした。usingディレクティブまたはアセンブリ参照が不足していないことを確認してください。 'Button'に'Top'の定義が含まれておらず、型'Button'の最初の引数を受け付ける拡張メソッド'Name'が見つかりませんでした。usingディレクティブまたはアセンブリ参照が不足していないことを確認してください。
###該当のソースコード
C#
1using System; 2using System.Collections.Generic; 3using System.Linq; 4using System.Web; 5using System.Web.UI; 6using System.Web.UI.WebControls; 7 8public partial class _Default : System.Web.UI.Page 9{ 10 private Button[] buttons; 11 protected void Page_Load(object sender, EventArgs e) 12 { 13 //ボタンコントロール配列の作成 14 this.buttons = new Button[10]; 15 for (int i = 0; i < buttons.Length; i++) 16 { 17 //ボタンコントロールのインスタンス作成 18 this.buttons[i] = new Button(); 19 20 //プロパティ設定 21 this.buttons[i].Name = "btn" + i.ToString(); 22 this.buttons[i].Text = "ボタン" + i.ToString(); 23 this.buttons[i].Top = i * 30; 24 25 //コントロールをフォームに追加 26 this.Controls.Add(this.buttons[i]); 27 } 28 } 29}
###試したこと
[コントロールの配列を作成する]の方のプログラムも試してみたのですが、「private System.Windows.Forms.Button[] testButtons;」の箇所で「型または名前空間の名前'Forms'が名前空間'System.Windows'に存在しません(アセンブリ参照があることを確認してください)。」というエラーが発生してしまいました。
回答3件
あなたの回答
tips
プレビュー