• ベストアンサー

VB.NETのパネルの使い方

VB.NETでWEBアプリケーションを作るのですが、Panelコントロールにテキストボックスやコンボボックスを配置し、メソッド一回でそのパネルの上に乗っている各コントロールをクリアしたいのです。こういう使い方ってできるのでしょうか?

noname#246722
noname#246722

質問者が選んだベストアンサー

  • ベストアンサー
noname#221739
noname#221739
回答No.3

1. For Each ループで、パネル内部のコントロールを列挙 2. 列挙されたコントロールそれぞれの TypeOf を見る Select Case 文を記述 3. 各 Case の中で、適切なクリアメソッドを記述 基本的には、こういう流れで ok です。 が、パネルの中にパネルを入れ子している場合は、再帰的に見ていくように記述してやる必要がありますが… ※社内フレームワーク/共通関数にするなら、特に。

noname#246722
質問者

補足

アドバイスありがとうございます。 For Each a As Control In Panel1.Controls Next でもControl のメソッドのなかに「TYPE OF」をさがしましたが ありませんでした。具体的にはどうするのでしょうか? 上記のコーディングがやはり間違っているのでしょうか?

その他の回答 (2)

  • popesyu
  • ベストアンサー率36% (1782/4883)
回答No.2

コントロールにはTextBox以外もあるんですよね? だったら × For Each a As TextBox In Panel1.Controls ○ For Each a As Control In Panel1.Controls になると思いますが。 手元に.netの環境がないので確認はVBAでやってますが、これで動作しました。確か以前VB.Netでも似たようなコードを書いた記憶があるのですが、ちょっと違ったかもしれません。

  • popesyu
  • ベストアンサー率36% (1782/4883)
回答No.1

パネルのControlsに対してFor Each~Nextでループかければいけるんじゃないかなと。 各コントロールのプロパティが全てtextとかで統一されているコントロールならメゾットは1回の使用?というか、一行分のコードになりますし。

noname#246722
質問者

補足

こんばんは。 For Each a As TextBox In Panel1.Controls a.Text = "" Next これでいきましたが、「指定したキャストは有効ではありません。」 のエラーになりました。 パネルの上のオブジェクトはコンボボックスもあるので、複雑になるのでしょうか?

関連するQ&A

  • VB.NETのコンボボックスについて

    VB6からVB.NETでプログラミングを始めました。 コンボボックスのクリアの仕方や設定の仕方、また 取り出し方等を教えて下さい。 色々とヘルプも見てみたのですが、よく解りません。 宜しくお願い致します。

  • 透明なフレーム VB.net

    開発環境 Windows2000Pro VB.net 2003 コンボボックス・オプションボタン(ラジオボタン)・チェックボックスの操作を不可としたいと思っております。 単に「Enabled」プロパティを「False」にすると、ラベルの文字が薄くなってしまうので、文字はそのままにしたいと考えております。 VB6では、枠線無しのフレームで囲み、そのフレームに対して、「Enabled」を操作することで可能でした。 VB.netではGroupBox・Panelというコントロールが提供されているようですが、実現は可能なのでしょうか? ご存知な方、宜しくご教授お願いします。

  • VB.NETコンボボックスのセンタリング

    VB.NETの標準コントロールのコンボボックスを使用して 開発を進めています。 コンボボックスにはセンタリング機能というものはあるのでしょうか?テキストボックスにはTextAlignというプロパティが存在しますが・・・。 存在しないようであれば、プログラム内で数字は右詰め、文字列は左詰めという風に設定したいと思うのですが、やり方がわかりません。 どなたかご存知の方、アドバイスお願いします。

  • VB.net Webアプリケーションでのユーザーコントロール(DLL)の作り方

    VB.netでWebアプリケーションでのユーザーコントロール(DLL)を試しに作ったのですが(テキストボックスを張り付けただけのもの)、WebアプリケーションにそのDLLを張り付けてもテキストボックスがでてきません。なぜでしょうか? DLL側のソース(一部)  Inherits System.Web.UI.UserControl'ユーザーコントロールと定義  Protected WithEvents TextBox1 As System.Web.UI.WebControls.TextBox'テキストボックスはりつけ

  • VB2005 コードでのコントロールのコピーについて

    いつもお世話になっています。 独学でVBの勉強をしているものなのですが、 どうしてもわからないことがあるので教えてください。 デザイナの画面で配置したテキストボックスなどのコントロールを、 コードでコピーして複数配置するようにしたいんです。 そこで、デザイナでTextBox1を配置して、 コードで以下のように記述しました。 Dim MyTextBox1 As New TextBox MyTextBox1 = TextBox1 Me.Controls.Add(MyTextBox1) すると、デザイナ画面で配置したテキストボックスが無くなって、 新たにコードで作成したテキストボックスだけが、 画面に表示されてしまうんです。 実際に行いたいことは、複数のコントロールをパネル上に配置して、 そのパネルをコードで複数作成することなのですが、 そもそもそのようなことはできないのでしょうか? かなり的外れな質問になってしまっているかもしれませんが、 お分かりでしたら教えてください。 よろしくお願いします。

  • VB.netでのライン描画方法がわかりません

    VB6.0にて作成していたソースプログラムを.netアップグレードウィザードによりアップグレードして.netソースを作成しました。VB6.0ではPictureBox.Lineを利用してラインの描画をできていたようなのですが、.netにはLineメソッドが用意されていないらしくライン描画をどう行なえば良いかがわかりません。またVB6.0ではPictureBoxだったコントロールがアップグレードウィザードにて変換された後はPanelコントロールになってしまっています。 .netにもPictureBoxはあるのになぜPanelコントロールに置き換わってしまうのでしょうか? いま現在やりたいのは、あるファイルより取得したデータを用いて、VB.netのコントロール(Panel? PictureBox?)にライン描画をさせてやりたいのです。 あまり難しいことは出来ませんので簡単に描画する方法をわかる方がいましたら教えて頂けませんか? よろしくお願いします。

  • vb2005のWebbrowserについて

    vb2005のWebbrowserコントロールで表示さているhtmlの中に 「web_text」というテキストフィールドがある場合、 WebBrowser1.Document.All.GetElementsByName("web_text")(0).InnerText = "あああ" というコードを実行すると、テキストフィールドに「あああ」という文字が入りますが、 似たようなカンジで、チェックボックスのチェックを選択したり、 コンボボックスから値を選択したり、ラジオボタンを選択したりする 方法がわかりません。 どなたかご教授願いたく思っております。

  • VB.NETで作成したDLLについて

    ご回答宜しくお願い致します。 現在、VBでユーザーコントロールのDLLを作成し、 DLLをC#で使用するというプログラムを開発してます。 そこで、以下のような現象が起こり 対応できかねております。 まず、VBで以下のメソッドを書きました。 Public Sub showMessage(ByVal bol As Boolean)     MessageBox.Show(bol) End Sub そして、C#からDLLのコントロール ( Panel1 ) を呼び出し、 private void Panel1_MouseClick(object sender, MouseEventArgs e) {     Panel1.setSelectedFlg(true); } これでメッセージボックスが表示されると思ったんですが表示されません。 VBのMessageBoxを別の処理に変えても全く動作しません。 メソッドを動作させる方法はございますでしょうか 宜しくお願い致します。

  • VB.NETでのWEBアプリケーションにおける設定

    VB.NETでのWEBアプリケーションにおける設定で困っています。入力の判定でテキストボックスのようなものをポップで出したいのですが、良く分かりません。設定方法を教えてください。Windowsformではありません。ブラウザ表示の際の入力判定です。お願いします。

  • VCでのFrame(VB6)は?

    お世話になります VB6のFrameコントロールの様に、フレームの枠にタイトルを付けたいのですが。 VC(visual studio 2010)の場合どのコントロールを使えばよろしいのでしょうか? Panelかな?と思い配置したのですが、Caption(VB6)に該当するTextが無いようなのですが。

専門家に質問してみよう