トップ回答者
動的にボタンを追加する方法

質問
-
vb2012のwindows store アプリを作っているのですが、
Private testButtons() As Button Protected Overrides Sub LoadState(navigationParameter As Object, pageState As Dictionary(Of String, Object)) Me.testButtons = New Button(14) {} Dim i As Integer For i = 0 To Me.testButtons.Length - 1 'インスタンス作成 Me.testButtons(i) = New Button 'プロパティ設定 Me.testButtons(i).Name = "Button" + i.ToString() Me.testButtons(i).Content = i.ToString() Me.testButtons(i).Width = 30 Me.testButtons(i).Height = 30 Me.testButtons(i).Margin = New Thickness(CDbl(i) * 30, 30, 0, 0) Next i
まではやったのですが、画面に表示することができません
vb2010では
Me.controls.AddRange(Me.testButtons)
でいけたのですがvb2012ではないようです
仮に、testgridというgridの中に表示させるにはどうすればよろしいのでしょうか。
- 編集済み shocho0101 2013年6月29日 10:20
回答
-
手元に実行環境が無いのですが、多分、こんな感じでになると思います。
Me.testGrid.Children.Add(Me.testButtons(i))
- 回答としてマーク shocho0101 2013年6月29日 13:08
すべての返信
-
手元に実行環境が無いのですが、多分、こんな感じでになると思います。
Me.testGrid.Children.Add(Me.testButtons(i))
- 回答としてマーク shocho0101 2013年6月29日 13:08
-
細かいことで申し訳ないですが、念のため。
以前に使えていた Controls.AddRange が使えない理由は、VB のバージョンではなく、作成しているプロジェクトの種別に起因します。
Controls.AddRange でコントロールを追加することは 「Windows フォームアプリケーション」 のプロジェクトでは使えます。これ以外の「WPF アプリケーション」や「Windows ストアアプリケーション」といったプロジェクトではクラスの体系が異なるので使うことができません。今回の Controls.AddRange の件以外でもいろいろと違う部分が出てくると思いますので、「バージョンが違うから使えない」と考えずに、「ストアアプリではどうすればできるのか」という視点で調べていきましょう。
- 回答の候補に設定 ひらぽんModerator 2013年7月1日 2:32