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

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

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

Re[4]: コントロールの数を取得する方法


(過去ログ 41 を表示中)

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

■21590 / inTopicNo.1)  コントロールの数を取得する方法
  
□投稿者/ マロン (1回)-(2008/07/04(Fri) 22:01:34)

分類:[C#] 

本当に基礎的なことだと思うのですが、どうしてもわからないので
教えていただけますでしょうか?

フォーム上にテキストボックス、ラベルなど様々な
コントロールが実装されている状態で、「テキストボックスが何個実装されているか」
を取得するにはどうすればよいのでしょうか?


int i = this.Controls.Count;

とするとフォーム上すべてのコントロールがいくつあるか、になってしまいます。。

int i = (TextBox)this.Controls.Count;

も違うみたいです。。。

どうかよろしくお願いいたします。

引用返信 編集キー/
■21591 / inTopicNo.2)  Re[1]: コントロールの数を取得する方法
□投稿者/ επιστημη (1130回)-(2008/07/04(Fri) 22:31:57)
επιστημη さんの Web サイト
> フォーム上にテキストボックス、ラベルなど様々な
> コントロールが実装されている状態で、「テキストボックスが何個実装されているか」
> を取得するにはどうすればよいのでしょうか?

たとえば:

            int count = 0;
            foreach (Control item in Controls)
            {
                if (item is TextBox) ++count;
            }

引用返信 編集キー/
■21592 / inTopicNo.3)  Re[1]: コントロールの数を取得する方法
□投稿者/ mitchin (2回)-(2008/07/04(Fri) 22:47:59)
VBのコードで確認もしてないけど

Dim i As Integer = GetTextBoxCount(Me)

Private Function GetTextBoxCount(ByVal Ctrl As Control) As Integer
 If Ctrl.Controls.Count = 0 Then
  If TypeOf Ctrl Is TextBox Then
   Return 1
  Else
   Return 0
  End If
 End If

 Dim i As Integer
 For Each c As Control In Ctrl.Controls
  i += GetTextBoxCount(c)
 Next
 Return i
End Function

引用返信 編集キー/
■21593 / inTopicNo.4)  Re[2]: コントロールの数を取得する方法
□投稿者/ も (25回)-(2008/07/04(Fri) 22:57:20)
LINQ使いたくなったので使ってみると…
private void Form1_Load(object sender, EventArgs e) {
int txts = this.Controls.OfType<Control>().Select(ctl => ctl is TextBox ? 1 : 0).Sum();
MessageBox.Show(txts.ToString());
}

引用返信 編集キー/
■21594 / inTopicNo.5)  Re[2]: コントロールの数を取得する方法
□投稿者/ nakaP (18回)-(2008/07/04(Fri) 22:57:56)
GroupBox上とかに配置されてたらちょっとややこしいかもですね。
Formに配置されているContainerControl内のものはthis.Controlsの対象外ですから。
引用返信 編集キー/
■21595 / inTopicNo.6)  Re[3]: コントロールの数を取得する方法
□投稿者/ nakaP (19回)-(2008/07/04(Fri) 23:38:37)
ひょっとしたら参考になるかもです。

http://blogs.wankuma.com/nakap/archive/2008/07/04/147416.aspx

引用返信 編集キー/
■21599 / inTopicNo.7)  Re[4]: コントロールの数を取得する方法
□投稿者/ さかもと (15回)-(2008/07/05(Sat) 10:36:21)
nakaPさんと同じやり方とってます。

親と子とかでくるくる回して、GroupBoxとかPanelとかあった時の対処をしています。


引用返信 編集キー/
■21609 / inTopicNo.8)  Re[3]: コントロールの数を取得する方法
□投稿者/ マロン (2回)-(2008/07/05(Sat) 21:33:37)
みなさま

早速ありがとうございました。
おかげさまで問題解決いたしました。
これからもっと勉強いたします。
解決済み
引用返信 編集キー/
■21612 / inTopicNo.9)  Re[4]: コントロールの数を取得する方法
□投稿者/ nakaP (20回)-(2008/07/06(Sun) 00:04:43)
いまさらですが、一部不十分なところがあったので修正しています。
参考にされるのであれば、十分な検証をお願いします。
解決済み
引用返信 編集キー/


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

このトピックに書きこむ

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

管理者用

- Child Tree -