• ベストアンサー

ユーザーコントロールのイベント取得

いつもお世話になっております。またもや疑問点が出てきましたので、初心者なので皆さんのお知恵を拝借させてください。 VS2005,C#でASP.NET(Web)を作成しています。 まずユーザーコントロール(TextBox)を作成し、Formに貼り付けます。そこで、ユーザーコントロールのイベント(TextChanged)をForm側から取得したいのですがよい方法はありませんでしょうか。

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

  • ベストアンサー
  • qtea
  • ベストアンサー率77% (38/49)
回答No.1

「ユーザーコントロールのイベントをForm側から取得」というのが、ユーザーコントロールのイベントをForm側で記述したいということであれば、以下のような感じで、できると思います。 (VS2000ですが、たぶん、VS2005でも大丈夫だと...思います。) //ユーザコントロールの宣言。 protected WebUserControl1 Ucl; private void Page_Load(object sender, System.EventArgs e) { TextBox txt; //ユーザコントロール内のTextBox1というIDのコントロールを探す txt=Ucl.FindControl("TextBox1") as TextBox; //必要なら。 txt.AutoPostBack=true; //TextChangedイベントを登録する. txt.TextChanged += new System.EventHandler(txt_TextChanged); } private void txt_TextChanged(object sender, System.EventArgs e) { //ここにTextChangedに対する処理内容を記述。例えば... TextBox txt; txt=Ucl.FindControl("TextBox1") as TextBox; txt.Text="change!!!"; }

関連するQ&A

  • .Net ユーザーコントロールのイベント

    質問させていただきます。 環境はVB.NET2003 WindowsXPです。 あるユーザーコントロール(Form)にボタンが用意されており、そのユーザーコントロールを別のフォームAに貼り付けたとします。 この時、Aのコード内でユーザーコントロール上のボタンのClickイベントを取得する方法がございましたら、回答をよろしくお願いします。

  • ユーザコントロールのイベント取得について(C#)

    環境:Visual Studio 2005 C# Windows Application フォームに自作のユーザコントロールを貼り付けてそのイベントを取得する勉強をしているものです。 フォームでのユーザコントロールイベントを取得して処理をする方法が分かりません。 状況 ユーザコントロールにはテキストボックスを追加しています。 また、フォームにそのユーザコントロールを追加しています。 確認したいことは、ユーザコントロールのテキストボックスになにか値を入力したタイミングでチェンジイベントをフォーム側で察知し、処理をするというものです。 どなたか、要点だけでもいいので教えていただけないでしょうか? 宜しくお願いいたします。

  • 別コントロールのサーバ側イベントに来てしまう

    ASP.NET4.0で、WEBシステムを開発しています。 デスクトップアプリの経験はありますが、WEBの経験はあまりないです。 TextBoxのTextChangedイベントハンドラを作成し、AutoPostBack=trueにして、 サーバ側で処理するようにしているのですが、その際、なぜかその近くに配置している ボタンのClickイベントハンドラにも来てしまっています。 VisualStudio2010でデバックして発覚しました。 それぞれ、別々のUpdatePanelで囲っています(UpdateMode=Conditional)。 PostBack時、押してもいないボタンのClickイベントに来てしまうようなことがあるのでしょうか。 (Enterキー押下で何か発生している?) UpdatePanelを使ってページを作成する際、注意点などはありますでしょうか。 よろしくお願いします。

  • asp.netでtextboxの値を取得

    ASP.net Webフォームで質問です(VS2012) ASP.netのTextBoxコントロールではなく、HTMLのtextboxの値を取得することは可能でしょうか。 また、textboxが複数あった場合でも、全てを取得したいのですが、 textboxがいくつあるか、その全てを取得するにはどのようにすれば良いでしょうか。

  • C#で動的にコントロールを取得するにはどのようにしたらよいのでしょうか

    C#で動的にコントロールを取得するにはどのようにしたらよいのでしょうか? C#2008ですが、Form1にTextBoxが30個あって、textBox1~textBox30という名前がついています。 このテキストボックスの値をForm2で取得したいのですがなかなかうまくいきません。 ------------------------- Form2: private void Form2_Click(object sender, EventArgs e){  Form1 fm = new Form1();    int No = 15; //ここを1~30まで動的にしたい  string result = fm.textBox15.Text; //直接comboBox_type15と書くのではなく「"comboBox_type" + No.ToString()」のようにしたい  MessageBox.Show(result); } ------------------------- コントロールを配列にして Control[] ctlArray = new Control[30] { fm.textBox1, fm.textBox2, …, fm.textBox30 }; のようにしてみましたが、エラーになってしまいます。 いろいろネットで検索してみたのですが、「コントロール名を動的に文字列で作成して使う」という方法がどこにも載っていなく、数時間格闘しています。 すみませんがご教授願います。よろしくお願いいたします。

  • WEBユーザーコントロール

    ASP.NETで開発をしております。fw2.0です。 WEBユーザーコントロールでDBの読み込み画面AとDBの書き込み画面Bを作ったとします。 WEBフォームにAとBをのっけた場合、Bの書き込み処理が終わった後にAの表示を更新させる にはどうしたらいいのでしょうか? イベントのとり方がわからなくて困っています。 ユーザーコントロールを使わなければ普通にイベントを取れるのですが。。。 出来ればユーザーコントロールを使いたいので WEBフォームでユーザーコントロールのイベントを取る方法があれば教えてください。

  • 【ASP2.0】TextBoxのフォーカスアウトでPostBackを実装させたい

    ASP.NET+VB.NET(2.0)でWebアプリを作成しております。 TextBoxのTextChangedイベントは値が変更したときにしか発生されない ようですので、値が変更されなくてもTextChangedイベントとしてサー バサイドで処理をしたいのですがよい方法が思いつきません。 TextBoxにJavaScriptのonBlurでTextChangedイベントを擬似的に発生さ せる方法をご存じの方、よろしくお願いいたします。

  • VB2008でユーザーコントロールのイベントについて

    VB2008でユーザーコントロールのイベントについて 作成したユーザーコントロールを(1)フォームに配置した時のみ実行される (2)フォームを実行した時のみ実行される それぞれ処理を分けたいのですが、適切なイベントが見つかりません。 何か区分けのできる方法はあるのでしょうか? 何方か教えていただけませんか

  • ユーザコントロールでのEnterキータブ移動

    開発言語:VS2008・C# VS2008・C#で郵便番号や電話番号を入力できるユーザコントロールを作成しています。 入力フィールドはTEXTBOX、区切り文字はLABELで、 郵便番号なら3桁 + 区切り文字(-) + 4桁 電話番号なら3桁 + 区切り文字(-) + 4桁 + 区切り文字(-) + 4桁 といった感じで、プロパティで設定された値により、動的に入力フィールドのTEXTBOXを作成しています。 上記のユーザコントロールをフォームに配置し、ENTERキーでフォーカスを移動させたいのですが、現時点で、ユーザコントロール内のTEXTBOXでENTERを押した場合フォーカスはユーザコントロール内の次のTEXTBOXに移動するのですが、最後のTEXTBOXでENTERキーを押した場合ユーザコントロールからフォーカスが移動しなくなってしまいます。 例)住所フィールド(TEXTBOX)→ENTER押下→郵便番号(ユーザコントロール)の上3桁フィールド→ENTER押下→郵便番号(ユーザコントロール)の下4桁フィールド→ENTER押下(フォーカスが次のコントロールに移動しない) ユーザコントロール内のENTERキー移動はKeyDownイベントに関連付け行っていますが、これだとユーザコントロール内しかENTERでフォーカスが移動せずフォーム上の次のコントロールにフォーカスが移動しません。 どなたか、ENTERキーでユーザコントロールからフォーカスが移動できる方法を教えてください。

  • ユーザーコントロール

    Visual Basic 2008 ExpressEditionをインストールしたのですが、新しいプロジェクトの作成でWPFのユーザーコントロールを作成するアイコンが見当たりません。FormやWPFアプリケーション、クラスライブラリを作成するというアイコンはあるのですが。 ユーザーコントロールを作成出来るようにする方法をご存知の方いらっしゃいましたら、よろしくお願いします。