2005 Volume 1 で、WebMisc アセンブリが Ultimate UI for ASP.NET の既存のアセンブリ一覧に追加されました。WebMisc アセンブリには、WebPanel™ コントロールと WebGroupBox™ コントロールの 2 つの新しいコントロールが含まれます。このプロセスは WebGroupBox コントロールに関わります。
新しい Visual Studio .NET ASP.NET Web アプリケーションを作成します。
ツールボックスから WebGroupBox コントロールを探し、フォーム上にドラッグします。
コントロールを WebGroupBox に追加するには、WebGroupBox の編集可能な領域にコントロールをドラッグします。標準の ASP.NET ラベル、ボタン、および 2 つのテキストボックスを編集可能な領域に追加します。また、ソリューション エクスプローラからファイルを直接 WebGroupBox にドラッグして、ユーザー コントロール(.ascx)をコンテンツテンプレートにドラッグすることもできます。これらのコントロールが追加されると、コントロールは以下のスクリーンショットのようになります。
注: Visual Studio 2005 では、デザインタイム テンプレートの代わりに、編集可能な領域が使用されました。詳細は、 「WebGroupBox で編集可能なデザイナ領域を使用」を参照してください。
WebGroupBox に含まれているコントロールは、Web フォームの Controls コレクションのメンバでないため、ASP.NET は WebForm クラス内でそれらを自動的に宣言して参照することはありません。このため、何らかのコードを記述して、含まれているコントロールへの有効な参照を取得する必要があります。Page_Load イベントの前に、以下のコード行を挿入します。
Visual Basic の場合:
' 注:Visual Studio .NET の Web フォームデザイナにおける問題を回避するため、 ' ここではコントロールの実際の ID(Button1、Button2など)の使用を避けます。 Protected WithEvents theButton As System.Web.UI.WebControls.Button Protected WithEvents theFirstText As System.Web.UI.WebControls.TextBox Protected WithEvents theSecondText As System.Web.UI.WebControls.TextBox
C# の場合:
// 注:Visual Studio .NET の Web フォームデザイナにおける問題を回避するため、 // ここではコントロールの実際の ID(Button1、Button2 など)の使用を避けます。 protected Button theButton; protected TextBox theFirstText; protected TextBox theSecondText;
次に、以下のコード行を Page_Load イベントに記述します。このコードにより、WebGroupBox 内のコントロールへの参照が提供されます。
Visual Basic の場合:
' 含まれるコントロールを参照させます。 Me.theButton = CType(Me.WebGroupBox1.FindControl("Button1"), Button) Me.theFirstText = CType(Me.WebGroupBox1.FindControl("TextBox1"), TextBox) Me.theSecondText = CType(Me.WebGroupBox1.FindControl("TextBox2"), TextBox)
C# の場合:
// 含まれるコントロールを参照させます。 this.theButton = (Button) this.WebGroupBox1.FindControl("Button1"); this.theFirstText = (TextBox)this.WebGroupBox1.FindControl("TextBox1"); this.theSecondText = (TextBox)this.WebGroupBox1.FindControl("TextBox2"); // ボタンのイベント ハンドラを設定します。 this.theButton.Click += new EventHandler(this.buttons_Click);
最後のコード追加として、ボタンのクリックイベントを作成し、2 番目のテキストボックスからのテキストを 1 番目のテキストボックスのテキストと等しくなるよう設定します。
Visual Basic の場合:
Private Sub buttons_Click(ByVal sender As Object, ByVal e As EventArgs) Handles theButton.Click Me.theSecondText.Text = Me.theFirstText.Text End Sub
C# の場合:
private void buttons_Click(object sender, EventArgs e) { this.theSecondText.Text = this.theFirstText.Text; }
プロジェクトを構築して実行し、何らかのデータを 1 番目のテキストボックスに入力し、ボタンをクリックすると、2 番目のテキストボックスにテキストが表示されます。