C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[2]: コントロール名を変数で指定


(過去ログ 118 を表示中)

[トピック内 4 記事 (1 - 4 表示)]  << 0 >>

■69430 / inTopicNo.1)  コントロール名を変数で指定
  
□投稿者/ setcom (1回)-(2013/12/26(Thu) 16:22:57)

分類:[VB.NET/VB2005 以降] 


下は、main_formと言う名前のフォームを表示しますが、この部分を
変数で変えたいのですが、どうすれば良いでしょうか。

Dim f As Form
f = New main_form
f.Show()

引用返信 編集キー/
■69433 / inTopicNo.2)  Re[1]: コントロール名を変数で指定
□投稿者/ 魔界の仮面弁士 (477回)-(2013/12/26(Thu) 16:45:51)
No69430 (setcom さん) に返信
> 下は、main_formと言う名前のフォームを表示しますが、この部分を
> 変数で変えたいのですが、どうすれば良いでしょうか。
> Dim f As Form
> f = New main_form

意図が良くわかりませんが、とりあえず:


(案1) 
Dim formName As String = "main_form"
Dim f As Form
f = CallByName(My.Forms, formName, CallType.Get)
f.Show()


(案2)
Dim formName As String = "WindowsApplication1.main_form" '名前空間込み
Dim t As Type = Type.GetType(formName)
Dim f As Form = CType(Activator.CreateInstance(t), Form)
f.Show()
引用返信 編集キー/
■69434 / inTopicNo.3)  Re[1]: コントロール名を変数で指定
□投稿者/ shu (459回)-(2013/12/26(Thu) 16:52:31)
No69430 (setcom さん) に返信

型名指定でインスタンスを作成するには以下のように出来ます。
WindowsApplication1の部分は名前空間となります。環境に合わせ変更してみて下さい。

Dim f As Form
f = DirectCast(Activator.CreateInstance(Type.GetType("WindowsApplication1.Form1", False)), Form)
f.Show()

引用返信 編集キー/
■69449 / inTopicNo.4)  Re[2]: コントロール名を変数で指定
□投稿者/ setcom (2回)-(2013/12/27(Fri) 09:13:34)
No69433 (魔界の仮面弁士 さん) に返信
> ■No69430 (setcom さん) に返信

魔界の仮面弁士さん、shuさん いずれのコードも出来ました。大変有り難う御座いました。
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -