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

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

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

Re[4]: テキストボックスについて


(過去ログ 74 を表示中)

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

■43548 / inTopicNo.1)  テキストボックスについて
  
□投稿者/ がながな (23回)-(2009/11/12(Thu) 13:36:11)

分類:[.NET 全般] 

いつもお世話になります。
VB.Netでテキストボックスの名前を変数にしてそのテキストボックス内に値を入れたいのですが、そんなことは可能でしょうか?VBAではできたのですが、.netではどのうにすればいいですか。

テキストボックス名:商品名

dim JJJ as string
JJJ="商品名"

me(JJJ)="テレビ"

こんな処理ってできますか?
引用返信 編集キー/
■43549 / inTopicNo.2)  Re[1]: テキストボックスについて
□投稿者/ επιστημη (2266回)-(2009/11/12(Thu) 13:40:49)
επιστημη さんの Web サイト
> VB.Netでテキストボックスの名前を変数にしてそのテキストボックス内に値を入れたいのですが、そんなことは可能でしょうか?

「似たこと」ならできます。
要は 名前(文字列) と コントロール の対応表があればいいのですから。

引用返信 編集キー/
■43550 / inTopicNo.3)  Re[2]: テキストボックスについて
□投稿者/ がながな (24回)-(2009/11/12(Thu) 13:54:16)
すいません。
具体的にはどのようにすればいいでしょうか?
よろしく御願いいたします。
引用返信 編集キー/
■43551 / inTopicNo.4)  Re[3]: テキストボックスについて
□投稿者/ επιστημη (2267回)-(2009/11/12(Thu) 14:07:27)
επιστημη さんの Web サイト
> 具体的にはどのようにすればいいでしょうか?

文字列とコントロールの対応表を作ります。

Dim dic As New System.Collections.Generic.Dictionary(Of String,Of TextBox)
dic.Add("品名",textbox1)
dic.Add("単価",textbox2)
dic.Add("数量",textbox3)

とかやっとけば、

dic("品名").Text = "かまぼこ"

引用返信 編集キー/
■43552 / inTopicNo.5)  Re[3]: テキストボックスについて
□投稿者/ GOD (16回)-(2009/11/12(Thu) 14:07:39)
No43550 (がながな さん) に返信
> すいません。
> 具体的にはどのようにすればいいでしょうか?
> よろしく御願いいたします。
>
VB2008なら↓でいけるみたいよ。
Dim sTxtName As String = "TextBox1"
Controls(sTxtName).Text = "123"

引用返信 編集キー/
■43553 / inTopicNo.6)  Re[4]: テキストボックスについて
□投稿者/ επιστημη (2268回)-(2009/11/12(Thu) 14:11:07)
επιστημη さんの Web サイト
> Controls(sTxtName).Text = "123"

入れ子になったコントロールも探してくれるのかしら?
名前がカブってるときとかは?

引用返信 編集キー/
■43560 / inTopicNo.7)  Re[5]: テキストボックスについて
□投稿者/ GOD (17回)-(2009/11/12(Thu) 15:51:31)
2009/11/12(Thu) 15:52:47 編集(投稿者)
2009/11/12(Thu) 15:51:53 編集(投稿者)

<pre><pre>■No43553 (επιστημη さん) に返信
>>        Controls(sTxtName).Text = "123"
> 
> 入れ子になったコントロールも探してくれるのかしら?
入れ子になってると意外と面倒ですね。コンテナ単位でControlCollectionを保持してい
るようなので↓みたいなプログラムを作成しないといけないみたいです。
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim sTxtName As String = "TextBox1"
        Dim target As Control = Nothing

        target = GetControl(Me, sTxtName)
        If Not target Is Nothing Then
            target.Text = "123"
        End If
    End Sub

    Private Function GetControl(ByVal src As Control, ByVal txtName As String) As Control
        Dim target As Control = Nothing

        If Not src.Controls Is Nothing Then
            If src.Controls(txtName) Is Nothing Then
                For i = 0 To src.Controls.Count - 1
                    target = GetControl(src.Controls(i), txtName)
                    If Not target Is Nothing Then
                        Exit For
                    End If
                Next
            Else
                target = src.Controls(txtName)
            End If
        End If
        Return target
    End Function

> 名前がカブってるときとかは?
> 
こちらの意図はわかりませんでした。
別フォームと言うことでしょうか?(Form1.TextBox1 と Form2.TextBox1?)
上記の解釈で合っているのならコンテナ単位でControlCollectionを保持しているので問題はないはずです。</pre></pre>

引用返信 編集キー/
■43561 / inTopicNo.8)  Re[6]: テキストボックスについて
□投稿者/ επιστημη (2270回)-(2009/11/12(Thu) 16:08:27)
επιστημη さんの Web サイト
> 名前がカブってるときとかは?
> こちらの意図はわかりませんでした。

えと、Control("なにやら") で得られるのは Nameプロパティが"なにやら"であるControlやないですか。
であれば、

TextBox1.Name = "なにやら"
TextBox2.Name = "なにやら"
TextBox3.Name = "なにやら"

Controls("なにやら").Text = "かーまぼーこー";

なんてとき、どのTextBoxが得られるんでしょ? てこと。

引用返信 編集キー/
■43563 / inTopicNo.9)  Re[7]: テキストボックスについて
□投稿者/ GOD (18回)-(2009/11/12(Thu) 16:34:00)
No43561 (επιστημη さん) に返信
>>名前がカブってるときとかは?
>>こちらの意図はわかりませんでした。
>
> TextBox1.Name = "なにやら"
> TextBox2.Name = "なにやら"
> TextBox3.Name = "なにやら"
>
> Controls("なにやら").Text = "かーまぼーこー";
>
> なんてとき、どのTextBoxが得られるんでしょ? てこと。
>
なるほど。確かにそれは無理みたいです><
IDE上では同名は禁止されてますが、コード上でNameプロパティを変えられたらアウトですね。
引用返信 編集キー/
■43564 / inTopicNo.10)  Re[8]: テキストボックスについて
□投稿者/ GOD (19回)-(2009/11/12(Thu) 17:05:54)
No43563 (GOD さん) に返信
> ■No43561 (επιστημη さん) に返信
> >>名前がカブってるときとかは?
> >>こちらの意図はわかりませんでした。
>>
>> TextBox1.Name = "なにやら"
>> TextBox2.Name = "なにやら"
>> TextBox3.Name = "なにやら"
>>
>> Controls("なにやら").Text = "かーまぼーこー";
>>
>>なんてとき、どのTextBoxが得られるんでしょ? てこと。
>>
> なるほど。確かにそれは無理みたいです><
> IDE上では同名は禁止されてますが、コード上でNameプロパティを変えられたらアウトですね。
>
デザイン時に張り付けたコントロールのNameプロパティは、コード上で変更することはなくても、
動的作成したコントロールのNameプロパティがどうなるかの方かな。
引用返信 編集キー/
■43565 / inTopicNo.11)  Re[4]: テキストボックスについて
□投稿者/ GOD (20回)-(2009/11/12(Thu) 17:30:25)
うわー、連投だ^^;
http://dobon.net/vb/dotnet/control/findcontrolbyname.html#net2
↑のページが結構参考になったので貼っときます。
入れ子(Controlsを使用時)もFindメソッドで解決とは。orz
引用返信 編集キー/


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

このトピックに書きこむ

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

管理者用

- Child Tree -