• 締切済み

VB.Net SplitContainerの中に

お世話になります。 Visual Studio 2012 VB.Net Windows 7 の環境で開発してます。 SplitContainer の中に SplitContainer を配置して ActiveControl の名前を取得すると、一番外側のSplitContainer名が表示されるのですが、実際のコントロール(TextBoxが配置されている SplitContainer) の名前を取得するにはどうしたらよいでしょうか? SplitContainer の中に SplitContainer を配置するのはあまり良くない方法でしょうか? 何卒よろしくお願いいたします。

みんなの回答

  • MARU4812
  • ベストアンサー率43% (196/452)
回答No.1

TextBox にフォーカスがあるのに SplitContainer が取れる時点でおかしい。 「SplitContainer、ActiveControl 」でWEB検索すればたくさん事例が出てくる有名な話。 イベントドリブンで引数にイベントを起こしたコントロールが 渡されてくるから、そもそも ActiveControl で何かを 判断するようなプログラムを書く人が少なく、特に問題視 されていない感じ。 ActiveControl が重要なら自分で Panel と Splitter で作りなおすのがいいのかな?私自身はこの問題を解決しないと いけない状況になった事が無いので何ともいえませんが。

kyokotan12
質問者

補足

MARU4812 さん お世話になります。 KeyDownイベントでEnterキーが押された時に次のコントロールに移るようにしているのですが、 If e.KeyCode = Keys.Enter Then   Me.SelectNextControl(Me.ActiveControl, forward, True, True, True) End If SplitContainerのコンテナ内にあるコントロールの場合、Me.ActiveControlがSplitContainerの名前を返しているのです。通常ならTextBoxなり他のコントロールの名前になると思うのですが、SplitContainer内部のコントロールをMe.ActiveControlで取得するとそうなるみたいなんです。 SelectNextControlを使用する場合、SplitContainerの数だけ分岐させないといけないのかなと思ったのが主旨でございました。 >TextBox にフォーカスがあるのに >SplitContainer が取れる時点でおかしい。 とございますが、 実際にKeyDownイベント内で、Me.ActiveControl.Name で画面に表示させると、SplitContainerの名前が出てきます。 Senderから型を抽出して分岐させていくのが解決方法なのか、まったく別の一文で解決できる問題なのか もしご指摘がございましたら、改めてご指南いただければと存じます。

関連するQ&A

  • VB6の後継って何ですか?

    Visual Studio 2010 Professional のVB(?)を使ってみましたが、VB6と結構違っていました。 VB6に慣れた人が今後使える開発環境が他にあれば教えてください。 Visual Studio 2010 Professional は使用期限が30日となっていますが、 VBっぽい開発環境で機能は少なくてもよいのですが、無償でずっと使えるものが あれば教えてください。 よろしくお願いします。

  • VCでのFrame(VB6)は?

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

  • visual studio2005でvb.NETとvb2005

    visual studio 2005を購入して現在その研究中です。最近の開発環境としてwindowsからは.net frameworkというベースの環境としてさまざまなプログラミングを行うようになっていることは分かりました。 vbでのソフト開発を試みているのですが、その環境下でのvb.NETとvb 2005の違いがよく分かりません。どちらも.net環境であるので単に新しいヴァージョンになっただけでしょうか。どちらでやった方が良いか何か知っている事がありましたら、些細な事でも構わないので教えて下さい。よろしくお願いします。

  • VB2005→Excelへの出力

    現在、以下環境にてシステム開発を行っています。 OS:WindowsXP DB:SQL Server 2005 画面系:Visual Studio 2005 (VB) 帳票系:Microsoft Office 2003 (Excel) ここで質問なのですが、 VBにて取得したデータ(DBから取得)を、 Excelファイルの帳票テンプレートの名前付きセルに貼り付けたいのですが、 方法がわかりません。VB、Excelでの開発(プログラミング)初心者です。 「Imports Microsoft.Office.Interop.Owc11」 をインポートしてるだけで停まっています。 情報足らずであれば、また追記します。 とりあえず要件まで。 宜しくお願いします。

  • C#で動的に配置したコントロール

    はじめまして 開発歴1年未満の開発者ですがよろしくお願いします。 開発環境 Visual Studio 2008 C# ASP.NET protected void Page_Load(object sender, EventArgs e) { TextBox TextBox = new TextBox(); TextBox.ID = "TextBox1"; TextBox.Text = "C# ASP.NET"; form1.Controls.Add(TextBox); } protected void Button1_Click(object sender, EventArgs e) { string strTextBox1 = ??????? } と上記のように読み込み時に、テキストボックスのみを動的に配置し、デザイナで配置したのボタンを押した際に、テキストボックスに入力された値を、取得したいのですが、方法がわかりません・・・ お忙しいとは、思いますがご回答よろしくお願いします。

  • W-Zero3アプリを作ろうと思っています/VB6.0

    http://www.gihyo.co.jp/dennou/article.php/v113/10/ Windows Mobile 5.0のアプリを作りたいのですが、 Visual Studioをもっていません。 しかし、開発環境Visual Basic 6.0なら昔購入しました。 ひさびさにアプリを作ろうと思います。 SDKなどインストールすれば、VB6.0で開発できますか? Visual StudioでできることなのでVB6.0で開発できる気が するのですが、そういう記事がなく心配なところです。 作り出してインストール後などで駄目だったということ にならないでしょうか? ちなみに Advanced esのw+infoのようなToday画面にニュースを表示する アプリを開発したいと考えています。

  • VB6 と VB.NET について

    私は3年程前に VB6.0 にて開発を行っていたのですが、家庭の事情で開発から退きました。 しかし、3年ぶりに開発に復帰することができ、今自己学習といったかたちで VB.NET を勉強しようとしているのですが… VB.NET を勉強するにあたって 何をインストールすればよいのかわかりません…  Visual Studio 2005 や 2008 は VB.NET としてWEB系のシステムとしてコーディングできるものなのですか?それとも 従来の VB6.0 のようなスタンドアローン的なシステムとしてコーディングできるものなのですか? それとも全く別のものなのでしょうか?

  • VB2005のTextBoxでカンマ区切りの表示

    よろしくお願いします。開発環境はVB2005です。 フォーム上に配置したTextBoxに金額を入れるのですが、わかりやすく読めるようにユーザーが数字を入力したら自動的に3桁のカンマ区切りで表示したいのですが、どのような方法があるのか教えてください。

  • VB2005 コントロール配列について教えていただけませんか?

    現在VB2005を用いてプログラムを行なっている初心者です。 ここのサイトでVB2005ではコントロール配列は使用できないことを知りました。そこで、例えばフォーム上にTextBoxを5個配置して、各TextBoxに入力された値を配列に格納するのにはどのようにすれば良いでしょうか? data(0) = textbox1.text data(1) = textbox2.textと一つずつやるしかないでしょうか・・・ For文などを用いて簡単にできる方法を教えてください。 よろしくお願い致します。

  • VB.NETでボタンクリックイベントで次のコントロールへ

    VB開発初心者です。 VB.NETでWindowsMobile5.0開発してます。 .NETCONPACTFreameWork2.0です。 TABキーで移動するように ボタンクリックイベントで次のコントロールへFocusを移動させたいのですがうまく行きません。 下記の記述すればOKだと思いましたが、 Me.SelectNextControl(Me.ActiveControl, True, True, True, True) ActiveControlを.NETCONPACTFreameWorkがサポートしてませんでした。 ほかに良い方法ありませんでしょうか? 宜しくお願いします。

専門家に質問してみよう