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

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

ログ内検索
  • キーワードを複数指定する場合は 半角スペース で区切ってください。
  • 検索条件は、(AND)=[A かつ B] (OR)=[A または B] となっています。
  • [返信]をクリックすると返信ページへ移動します。
キーワード/ 検索条件 /
検索範囲/ 強調表示/ ON (自動リンクOFF)
結果表示件数/ 記事No検索/ ON
大文字と小文字を区別する

No.13689 の関連記事表示

<< 0 >>
■13689  ユーザーコントロール Form側の名称
□投稿者/ しほちゃん★ -(2008/02/01(Fri) 16:49:10)

    分類:[.NET 全般] 

    環境はvb2005です。

    UserControlTextって名前のコントロールを作成いたしました。

    Form1でUserControltextを6つはりつけました。

    UserControltext内のtext1で値を入力した時にポップアップ画面にとばします。

    ポップアップ画面ではUserControltextの1〜6のどのtext1からとんできたか必要です。

    text1の名称は  Dim wkstr As String = DirectCast(sender, Control).Name
    でとれましたがUserControltext1〜6の名称はすべて同じでしたので

    Formで決めたUserControltextの名称が必要です。

    ご回答よろしくお願いいたします。
親記事 /過去ログ29より / 関連記事表示
削除チェック/

■13693  Re[1]: ユーザーコントロール Form側の名称
□投稿者/ Hirotow -(2008/02/01(Fri) 17:40:20)
    ぶっ飛んでエスパーすると:
    DirectCast(sender, Control).Parent.Nameでいいのでは?
記事No.13689 のレス /過去ログ29より / 関連記事表示
削除チェック/

■13696  Re[2]: ユーザーコントロール Form側の名称
□投稿者/ しほちゃん★ -(2008/02/01(Fri) 18:36:34)
    No13693 (Hirotow さん) に返信
    > ぶっ飛んでエスパーすると:
    > DirectCast(sender, Control).Parent.Nameでいいのでは?

    そのままはりつけとことろStrig型をwindows.forms.form型に変換できません。
    となりました。

    ご回答ありがとうございました。^^
記事No.13689 のレス /過去ログ29より / 関連記事表示
削除チェック/

■13692  Re[1]: ユーザーコントロール Form側の名称
□投稿者/ 魔界の仮面弁士 -(2008/02/01(Fri) 17:39:18)
    No13689 (しほちゃん★ さん) に返信
    > UserControlTextって名前のコントロールを作成いたしました。
    それは具体的に、どのようなコントロールなのでしょうか?
    とりあえず、「UserControl に TextBox を一つだけ貼った物」だと解釈して回答します。


    > Form1でUserControltextを6つはりつけました。
    > UserControltext内のtext1で値を入力した時にポップアップ画面にとばします。
    この部分を、もう少し詳しく教えてください。
    入力した時に、ポップアップ画面に「何を」「どのようなコードで」とばしているのでしょうか?

    それから、「とばす」は複数の意味をもつ言葉なので(skip, transfer, throw 等)、
    誤解の無いよう、念のために別の言葉で説明し直して頂けると助かります。


    > ポップアップ画面ではUserControltextの1〜6のどのtext1からとんできたか必要です。
    text1 に入力した時(入力した直後、という意味かな?)に、ポップアップ画面に「とばす」処理を
    行っているのは、どの部分ですか?
     (1) Form1
     (2) Form1 上の UserControlText1〜6
     (3) UserControlText 上の Text1

    たとえば、Text1の TextChanged イベントで「とばす」のであれば、
    イベント引数の sender で、Text1 自身を得られます。そこまで得られれば、
    あとはその Text1 の Parentプロパティで、親となる UserControl を得られるかと。


    > Formで決めたUserControltextの名称が必要です。
    処理の流れが分からなかったので、あまり具体的な回答はできませんが、
    現在アクティブになっているコントロールを得たいという意味であれば、
    ActiveControl プロパティで得られるかと思います。

    アクティブかどうかは関係無く、単に名称を得たいだけなら、そのコントロール自身は、
     Me.Name
    で、自分の名前を得られるでしょうし、Form側からなら、
     対象コントロール.Name
    で名前を得られるかと思いますよ。


    ただ、あまりデザイン時の「名称」には頼らない方が安全かもしれません。
    今回のケースでは大丈夫なのかもしれませんが、Name プロパティ自体は
    実行時に変更可能なので、たとえば、コントロールの利用者が
     Label1.Name = "Label2"
     Label2.Name = "Label1"
    のように、名前を変更してしまう事も許可されていますし。
記事No.13689 のレス /過去ログ29より / 関連記事表示
削除チェック/

■13695  Re[2]: ユーザーコントロール Form側の名称
□投稿者/ しほちゃん★ -(2008/02/01(Fri) 18:32:21)
    No13692 (魔界の仮面弁士 さん) に返信
    > ■No13689 (しほちゃん★ さん) に返信
    >>UserControlTextって名前のコントロールを作成いたしました。
    > それは具体的に、どのようなコントロールなのでしょうか?
    「UserControl に TextBox を8つだけ貼った物」です。

    >>Form1でUserControltextを6つはりつけました。
    >>UserControltext内のtext1で値を入力した時にポップアップ画面にとばします。
    > この部分を、もう少し詳しく教えてください。
    > 入力した時に、ポップアップ画面に「何を」「どのようなコードで」とばしているのでしょうか?
    >

    textboxに入力したshohinCDからSELECT文でレコードを検索してレコードが2個以上の時に
    ポップアップ画面がshowdialogされます。

    >>ポップアップ画面ではUserControltextの1〜6のどのtext1からとんできたか必要です。
    > text1 に入力した時(入力した直後、という意味かな?)に、ポップアップ画面に「とばす」処理を
    > 行っているのは、どの部分ですか?

     (3) UserControlText 上の Text1  です。
    なのでどのUsercontrolのtext1からshowされたかが必要になりました


    > アクティブかどうかは関係無く、単に名称を得たいだけなら、そのコントロール自身は、
    >  Me.Name

    コントロールの名前(UserControltext)はとれるのですが
    Formにはりついた名称はとれません。(UserControltext1〜6の名称)

    もうすこし説明を補足いたしますと

    shohincdには数桁の数字をいれて検索します。
    そして SELECT 〜  ShohinCD LIKE " & (Me.txtShohinCD.Text + "%")
    あてはまる商品が2個以上あればポップアップ側でその商品がdatagridで全部でてきます。
    それをダブルクリックいたしますと
    UserControltext内のtext2からtext4に商品の情報が格納されます。

    Usercontroltext1.text1からポップアップ画面をshowdialogして
    商品を選んでダブルクリックしますと値は正規にはいります

    二回目以降ははいりません。予測ですが二回目もUsercontroltext1.text1からshowdialogされた状態になっています。
    それを回避するにはUsercontroltext1.textでshowdailogするとき親はどのUsercontrolかがわかれば
    そのあとのポップ画面からの代入もSELECTでわけられると考えてます。

    なのでFormにはりついたUSerconrolの名称のとりかたを検索しています。
    長くなっていましました 




記事No.13689 のレス /過去ログ29より / 関連記事表示
削除チェック/

■13700  Re[3]: ユーザーコントロール Form側の名称
□投稿者/ 魔界の仮面弁士 -(2008/02/01(Fri) 19:41:47)
    No13695 (しほちゃん★ さん) に返信
    > textboxに入力したshohinCDからSELECT文でレコードを検索してレコードが2個以上の時に
    > ポップアップ画面がshowdialogされます。
    
    IntelliSense や、AutoComple 、あるいは google サジェストのようなものかな?
    
    TextBox の KeyPress や TextChanged などから、入力と同時に、
    リアルタイム検索で表示されるような物を連想しました。
    
    
    >   (3) UserControlText 上の Text1  です。
    > なのでどのUsercontrolのtext1からshowされたかが必要になりました
    であれば、Text1 自身のインスタンスは、すぐに得られますよね。
    あとは、その Parent を辿れば、UserControl のインスタンスも得られるので、
    「名称」に頼る必要も無くなるかと。
    
    
    >>アクティブかどうかは関係無く、単に名称を得たいだけなら、そのコントロール自身は、
    >> Me.Name
    > コントロールの名前(UserControltext)はとれるのですが
    > Formにはりついた名称はとれません。(UserControltext1〜6の名称)
    
    …? おかしいですね。
    "UserControltext" を得るのであれば、Me.GetType().Name とせねばならないハズですが。
    
    下記の UserControl を貼り付けて、ダブルクリックしてみてください。
    コントロールの名前が得られませんか?
    
    Public Class UserControltext
    
        Private Sub UserControltext_DoubleClick( _
            ByVal sender As Object, _
            ByVal e As EventArgs) Handles Me.DoubleClick
    
            MsgBox("名前=" & Me.Name & vbCrLf & "型名=" & Me.GetType().Name)
        End Sub
    
        Private Sub UserControltext_Load( _
            ByVal sender As Object, _
            ByVal e As EventArgs) Handles Me.Load
            Me.BackColor = Color.ForestGreen
        End Sub
    End Class
    
    
    > 予測ですが二回目もUsercontroltext1.text1からshowdialogされた状態になっています。
    「予測」でコーディングするのは危険な気がしますが…。
記事No.13689 のレス /過去ログ29より / 関連記事表示
削除チェック/

■13747  Re[4]: ユーザーコントロール Form側の名称
□投稿者/ しほちゃん★ -(2008/02/04(Mon) 11:26:51)
    No13700 (魔界の仮面弁士 さん) に返信
    > ■No13695 (しほちゃん★ さん) に返信
    > "UserControltext" を得るのであれば、Me.GetType().Name とせねばならないハズですが。
    >
    > 下記の UserControl を貼り付けて、ダブルクリックしてみてください。
    > コントロールの名前が得られませんか?
    >
    > Public Class UserControltext
    >
    > Private Sub UserControltext_DoubleClick( _
    > ByVal sender As Object, _
    > ByVal e As EventArgs) Handles Me.DoubleClick
    >
    > MsgBox("名前=" & Me.Name & vbCrLf & "型名=" & Me.GetType().Name)
    > End Sub
    >

    失礼いたしました。
    me.nameでUserControlText1の名前をとることができました。
    勘違いしていました。
    うまくいくとおもいます。
    いつも適切なアドバイスありがとうございます。^^
記事No.13689 のレス /過去ログ29より / 関連記事表示
削除チェック/

■13699  Re[3]: ユーザーコントロール Form側の名称
□投稿者/ やじゅ -(2008/02/01(Fri) 19:29:25)
    No13695 (しほちゃん★ さん) に返信
    >
    > 
    > なのでFormにはりついたUSerconrolの名称のとりかたを検索しています。
    > 長くなっていましました 
    >

    UserControl側にプロパティを作成して、最終Enter位置のコントロール名なりを格納して
    プロパティで取得できるようにでもすればいいかな
記事No.13689 のレス /過去ログ29より / 関連記事表示
削除チェック/

■13756  Re[4]: ユーザーコントロール Form側の名称
□投稿者/ しほちゃん★ -(2008/02/04(Mon) 16:10:15)
    No13699 (やじゅ さん) に返信
    > ■No13695 (しほちゃん★ さん) に返信
    >>
    > > 
    >>なのでFormにはりついたUSerconrolの名称のとりかたを検索しています。
    >>長くなっていましました 
    >>
    >
    > UserControl側にプロパティを作成して、最終Enter位置のコントロール名なりを格納して
    > プロパティで取得できるようにでもすればいいかな
    >
記事No.13689 のレス / END /過去ログ29より / 関連記事表示
削除チェック/



<< 0 >>

パスワード/

- Child Tree -