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

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

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

Re[2]: 条件に合うテキストボックスの存在確認


(過去ログ 105 を表示中)

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

■62560 / inTopicNo.1)  条件に合うテキストボックスの存在確認
  
□投稿者/ miyapura (1回)-(2011/10/18(Tue) 13:51:46)

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

開発環境:VB.NET(VS 2008)

フォーム上に複数のテキストボックスを配置しておりますが、
例えば、テキストボックスのTextの中に指定した文字が含まれている、等、
条件に合っているテキストボックスが存在するかどうかを調べるには
どのようにすればよいのでしょうか?
For EachでフォームのConlrolsの内容をひとつずつ調べていくことは出来ますが、
Textプロパティ以外の幾つかのプロパティについても条件を別々に調べたいので、
もっと簡単に調べることができればありがたいです。
引用返信 編集キー/
■62561 / inTopicNo.2)  Re[1]: 条件に合うテキストボックスの存在確認
□投稿者/ NF64 (5回)-(2011/10/18(Tue) 14:04:37)
そのままFor Each内で処理すれば良いと思うのですが、何がダメなんでしょう。
その処理を複数回実施するのであれば、メソッド化すれば良いと思いますし。

引用返信 編集キー/
■62562 / inTopicNo.3)  Re[1]: 条件に合うテキストボックスの存在確認
□投稿者/ shu (1045回)-(2011/10/18(Tue) 14:24:35)
No62560 (miyapura さん) に返信

> もっと簡単に調べることができればありがたいです。
難しさはどこにありますか?
引用返信 編集キー/
■62569 / inTopicNo.4)  Re[1]: 条件に合うテキストボックスの存在確認
□投稿者/ やじゅ (1960回)-(2011/10/18(Tue) 19:18:21)
やじゅ さんの Web サイト
No62560 (miyapura さん) に返信
> 開発環境:VB.NET(VS 2008)
> フォーム上に複数のテキストボックスを配置しておりますが、
> 例えば、テキストボックスのTextの中に指定した文字が含まれている、等、
> 条件に合っているテキストボックスが存在するかどうかを調べるには
> どのようにすればよいのでしょうか?

5つのテキストボックスに、「あああ」、「いいい」、「ううう」、「えええ」、「おおお」をセット
LINQで「いいい」と「えええ」の文字があるコントロール名を取得してリストボックスにセット。

'LINQで処理を定義
Dim result = From txt In Me.Controls.OfType(Of TextBox)() _
             Where txt.Text = "いいい" Or txt.Text = "えええ" _
            Select txt.Name

'結果セットを取得して表示
ListBox1.Items.AddRange(result.ToArray)

LINQの概要
http://homepage1.nifty.com/rucio/VBLINQ/LINQ01.htm

引用返信 編集キー/
■62575 / inTopicNo.5)  Re[2]: 条件に合うテキストボックスの存在確認
□投稿者/ miyapura (2回)-(2011/10/19(Wed) 09:27:59)
No62569 (やじゅ さん) に返信
> ■No62560 (miyapura さん) に返信
>>開発環境:VB.NET(VS 2008)
>>フォーム上に複数のテキストボックスを配置しておりますが、
>>例えば、テキストボックスのTextの中に指定した文字が含まれている、等、
>>条件に合っているテキストボックスが存在するかどうかを調べるには
>>どのようにすればよいのでしょうか?
>
> 5つのテキストボックスに、「あああ」、「いいい」、「ううう」、「えええ」、「おおお」をセット
> LINQで「いいい」と「えええ」の文字があるコントロール名を取得してリストボックスにセット。
>
> 'LINQで処理を定義
> Dim result = From txt In Me.Controls.OfType(Of TextBox)() _
> Where txt.Text = "いいい" Or txt.Text = "えええ" _
>   Select txt.Name
>
> '結果セットを取得して表示
> ListBox1.Items.AddRange(result.ToArray)
>
> LINQの概要
> http://homepage1.nifty.com/rucio/VBLINQ/LINQ01.htm

まさにこのような方法を探していました。
この方法だと、対象のコントロールを一括でリストに格納して利用できるので、今回の件以外にも活用できそうです。
LINQというものをもう少し勉強してみます。
やじゅ さん、本当にありがとうございました。
解決済み
引用返信 編集キー/


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

このトピックに書きこむ

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

管理者用

- Child Tree -