• 締切済み

.NET のTreeViewのカーソルについて

TreeView内の項目がいくつかあり、項目を押下すると、画面が遷移します。 しかし、項目以外を押下すると、一番上の項目にイベントが発生し、押下できなくなってしまいます。一番上の項目へフォーカスが発生しないようにするには、どうしたら良いでしょうか? 今のソースは以下のようです Select case ・・・・ case 1111 移動 case 2222 移動  case "" end select

  • vbno1
  • お礼率37% (47/125)

みんなの回答

  • mo_gu
  • ベストアンサー率51% (56/109)
回答No.1

TreeView使ってますけど 項目以外をクリックして一番上の項目へフォーカスが行くことはないです。 コードで一番上の項目へフォーカスを移動してませんか?

vbno1
質問者

お礼

回答をありがとうございます。 プロパティでも確認しましたが、コードで一番上の項目へフォーカスを移動はしていないです>< 空白部分をクリックすると、1111の項目が青くなり、2222を押下し、遷移して戻るまで、1111は何も動作をしなくなります。

関連するQ&A

  • .NETのTreeViewの項目が一つの場合の画面遷移

    .NETのTreeViewの項目が一つの場合の画面遷移がうまくできません。 'Dim Node As TreeNode 'Dim form2 As New あああ 'Node = TreeView2.SelectedNode 'Select Case Node.Text ' Case "あああ" ' form2.Show() ' Me.Hide() 'End Select とすると、他画面から、TreeViewを経由して遷移させたくても、TreeView内に一つしか選択要素がない場合の画面へは行かず、すぐ上のTreeView内にいくつもの選択要素がある画面へ飛んでしまいます。 単体で動かしたくても、TreeView内に選択項目が一つの場合は動きません。 どなたか、回避する方法をご存知の方お教えください

  • TreeViewのCheckBoxについて

    はじめまして。 以下の環境で開発しています。 Visual studio 2005 Version 8.0.50727.867 (vsvista.050727-8600) .NET Framework Version 2.0.50727 SP2 Visual Basic 2005 TreeView(二階層限定)にCheckBoxを表示させて親ノードのCheckBoxをTrue/Falseすると その子ノードのCheckBoxも全部合わせてTrue/Falseするものを作ろうとしていますが、 CheckBoxクリック時のイベントが拾えません。 どなたかご存知の方がおられましたらご教授ください。 通常のCheckBoxであればPostBackが発生するのですが、TreeViewのCheckBoxにはそのような イベントがありません。 TreeNodeCheckChangedイベントはあるのですが、True/Falseが切り替わったあとにTreeView のラベル選択したときに発生する中途半端なイベントなので使えません。 http://msdn.microsoft.com/ja-jp/library/system.windows.forms.treeview.aftercheck(VS.80).aspx のヘルプからAfterCheckイベントを調べて試したのですが、 Imports System.Windows.Forms Public Event AfterCheck As TreeViewEventHandler を定義して、以下の関数を書いてみたのですが、 Private Sub node_AfterCheck(ByVal sender As Object, ByVal e As TreeViewEventArgs) Handles TreeView1.AfterCheck ~中身~ End Sub 「イベントAfterCheckが見つかりません。」とコンパイルエラーとなります。 客先の開発環境なのでバージョンアップ等はできません。 どなたかCheckBoxクリック時のイベントの拾い方をご存知の方がおられましたらご教授お願いします。

  • 新規レコードへ移動しない

    Access2010を使用しています。 サブフォームからメインフォームの「登録」ボタンプロシージャをCallした時、メイン・サブフォーム共に新規レコードへ移動しなくて困っています。 具体的には、サブフォームにフォーカスがある時に「F12」を押すと画面の入力項目の内容刃そのままでメインフォームの「注文番号」テキストボックスにフォーカスが移動します。 メインフォームにフォーカスがあるか、マウスで「F12」をクリックすると画面の入力項目がクリアされて新規レコードへ移動します。 コードは以下の内容が記述してあります。 ーーーーーサブフォーム----- Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer) Select Case KeyCode Case 123 Call Me.Parent.Form_KeyDown(KeyCode, Shift) KeyCode = 0 End Select End Sub -----メインフォーム----- Public Sub Form_KeyDown(KeyCode As Integer, Shift As Integer) Select Case KeyCode Case 123 Call 登録_Click KeyCode = 0 End Select End Sub Private Sub 登録_Click() DoCmd.GoToRecord , , acNewRec Me.注文番号.SetFocus End Sub

  • treeview展開イベント(VS2010C++)

    お世話になります VS2010 C++/CLIで開発しております treeviewの+-表示部での展開閉時に発生するイベントを教えていただけないでしょうか。 以下のイベントを確認したのですが、テキスト部を選択時にはイベントが発生するのですが、 +-の±部のみで開閉を行うとイベントが受け取れませんでした。 AfterCheck AfterCollapse AfterExpand BeforeCheck BeforeCollapse BeforeExpand BeforeSelect Click ContextMenuChanged ContextMenuStripChanged NodeMouseClick TreeNodeCollapsed TreeNodeExpanded

  • [Enter]エンターキーでカーソル移動する方法

    プログラム(VB.NET)初心者です。 どうぞよろしくお願いします。 フォームに複数のテキストボックスを配置しているのですが、 タブで次のテキストにフォーカスが移動するように [Enter]キー押下時もフォーカスを次のテキストに移動させたいのです。 色々試してみたものの、なかなかうまくいきません(><) どなたか、わかる方教えていただけたら幸いです。 サンプルソースがあると嬉しいです。 申し訳ありませんが、宜しくお願いします。

  • JavaScriptのキーイベントについての質問です。

    JavaScriptのキーイベントについての質問です。 フォーム上にテキストボックス、セレクトボックス、ボタンがあります。 それぞれの項目移動をキーボード(enter)で行いたいのですが、 テキストボックスからセレクトボックスへの移動は、 onkeydownとonblurにより、enter押下にて行えるのですが、 セレクトボックスからボタンへの移動が行えません。 これは可能なのでしょうか? できればセレクトボックスにフォーカスされている時にenter押下で、ボタンを押すようにしたいです。 ブラウザはIEです。 どなたか是非ともご教示お願い致します。

  • エクセルで指定したセルへカーソルを移動させる

    エクセル2007で セル”I1”に文字を入力してエンターを押したら、“B11”へセルを移動させたく、 以下のように作ってみたのですが、 反応してくれません。 このVBAもインターネット上にあったものを参考にしただけなので、 何が悪いのかさっぱりわかりません。どこを修正したらよいのか教えてください。 Private Sub Worksheet_SelectionChange(ByVal Target As Range) Select Case Target.Address(0, 0) Case "i2" [b11].Select End Select End Sub

  • タブコントロールについて

    お世話になっております VB.NET 2010 Windows7 Windowsフォーム画面の開発をしています タブコントロールについてです 現在、タブページを使用しており、1ページ目で検索、2ページ目に検索結果一覧、3ページ目で詳細が見れるようになっています 1ページ目に検索条件を入れ2ページ目のタブを押すと、入力ミスがあったら2ページ目に遷移せずに入力ミスしたコントロールの場所にフォーカスが飛び、正常なら検索され2ページ目に遷移します ここで質問なのですが、今現在TabControl.Selection イベントに入力チェック、検索処理を書いています 入力チェックでミスがあった場合にタブページを移動しないこと、1ページから2ページ遷移で検索処理を起こすため、次のタブページを検知しなければいけないからです ですが、入力ミスが起こった際、フォーカスが入力ミスした項目に飛びません 1ページ目の最初の項目に飛んでしまいます おそらく、タブページ移動(2ページ目に飛ぶ)→入力ミスでフォーカス移動→タブページ移動キャンセル(2ページ目から1ページ目に飛ぶことでタブコントロールにフォーカス移動)→タブページの次の項目 となっていると思われます DeSelectingイベントに入れると、入力ミスした際にエラーのある項目に飛ぶのですが、そうすると2ページ目に移動しようとしたのか、3ページ目に移動しようとしたのかが分からなくなってしまいます 押したタブページが検知でき、なおかつキャンセルされたときにフォーカスが移動できるような方法ありますでしょうか よろしくお願いします

  • テキストの入力時、カーソルの移動をスムーズにしたい

     VB6で複数入力項目(テキスト/コンボボックス等)がある画面を作っているのですが、文字が最大桁数に達したら、次のコンボボックスへカーソル(=フォーカス)を移動し、次の入力項目へを行いたいのですが、 どうも思った様に、移動しないです。  以下は半角数字項目が最大文字数に達した場合、次のインプットボックスへフォーカスが移動する様に組んでみました。 Private Sub Txt_Input_KeyPress(KeyAscii As Integer) If KeyAscii <> 8 And (KeyAscii < 48 Or KeyAscii > 57) Then KeyAscii = 0 If Len(Txt_Input.Text) >= (Txt_Input.MaxLength - 1) Then Txt_Input2.SetFocus End If End Sub ところが、バックスペースでも1文字分と捉えてしまう様で、3文字入力の場合等は先頭から入力し直さないと、再入力も儘ならない状態です。 何かバックスペースも自然に効く形で同様の制御は行えないものでしょうか。 (尚、MaxLength - 1の部分は-1しないとフォーカスが動きませんでした。)

  • 【Access】サブフォーム間のカーソル移動がわからなくて困っています。

    2つのサブフォームがあり、サブフォーム間のカーソル移動を実現したいのですが、 意図した動作にならず、困っております。 その為、下記の条件を満たす動作をご教示いただける方がいらっしゃいましたら、 ご教示の程、よろしくお願いします。 【条件】 1. Form1_SUBのfield2でEnterキー押下時、同じ行のForm2_SUBのIDに移動したいです (Form1_SUBの1行目のfield2でEnterキー押下時、 Form2_SUBの1行目のIDにカーソルを移動したいです。 下記のソースでは Form2_SUBの最後のカーソル位置があった行のIDに遷移してしまいます)。 2. Form2_SUBのfield2でEnterキー押下時、次の行のForm1_SUBのIDに移動したいです (Form2_SUBの1行目のfield2でEnterキー押下時、 Form1_SUBの2行目のIDにカーソルを移動したいです。 下記のソースでは Form1_SUBの最後のカーソル位置があった行のIDに遷移してしまいます)。 【フォーム名】 親:OYAFORM サブ:Form1_SUB(T1テーブルを連結した帳票フォームです。) サブ:Form2_SUB(T2テーブルを連結した帳票フォームです。) 【テーブル名】 T1(ID, field1, field2) T2(ID, field1, field2) 【F1_SUBのソース】 Private Sub field2_KeyDown(KeyCode As Integer, Shift As Integer) If KeyCode = vbKeyReturn Then Forms!OYAFORM!Form2_SUB.SetFocus Forms!OYAFORM!Form2_SUB.Form!ID.SetFocus End If End Sub 【F2_SUBのソース】 Private Sub field2_KeyDown(KeyCode As Integer, Shift As Integer) If KeyCode = vbKeyReturn Then Forms!OYAFORM!Form1_SUB.SetFocus Forms!OYAFORM!Form1_SUB.Form!ID.SetFocus End If End Sub 以上、よろしくお願いします。