質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

WPF

Windows Presentation Foundation (WPF) は、魅力的な外観のユーザー エクスペリエンスを持つ Windows クライアント アプリケーションを作成するための次世代プレゼンテーション システムです

Q&A

0回答

1877閲覧

TreeViewのスクロール

juntaro

総合スコア15

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

WPF

Windows Presentation Foundation (WPF) は、魅力的な外観のユーザー エクスペリエンスを持つ Windows クライアント アプリケーションを作成するための次世代プレゼンテーション システムです

0グッド

2クリップ

投稿2019/04/05 09:04

WPFのTreeViewを使用しています。
選択したいItemのSelectは問題なく行えるのですが、スクロールが正常に行えません。
選択されてはいるが、手動でスクロールしないと見えないという状況です。
BringIntoViewを使用しています。選択は出来ているのに、使い方が間違っているんですかね。
他に何か良い解決策があれば教えて頂ければと思います。
よろしくお願いします。

C#

1 foreach (TreeNode childNode in treeview.Items) 2 { 3 if (ReferenceEquals(selectedItem, childNode.Tag)) 4 { 5 childNode.IsSelected = true; 6 childNode.BringIntoView(); 7 break; 8 } 9 }

開発環境:Visual Studio 2017 (WPF)
動作環境:Windows10

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

y_waiwai

2019/04/05 10:05

正常にスクロール、というのはどういうことでしょう。 何をどうしたいのか、詳しく説明しましょう
juntaro

2019/04/05 11:29

言葉足らずで申し訳ありません。 選択はされますが、表示される位置までスクロールしてくれないという意味です。 ListBoxなどですと、ScrollIntoViewなどで指定した位置まで少なくとも表示はされる位置まで自動でスクロールしてくれたと思いますが、TreeViewにはそれがありません。 FrameworkElement派生らしく、BringIntoViewを使用しましたが効果なしです。 この方法自体が悪いのかも知りたい所ですが、他に方法があるかも知りたいです。
Nyaf

2019/04/05 19:16

TreeNode って、何者なんでしょう? TreeViewItem を継承してるんでしょうか? TreeViewItem の場合は BringIntoView でスクロールしますね。
juntaro

2019/04/11 06:54

回答遅くて申し訳ありません。 TreeNodeはFrameworkElementを継承しています。 FrameworkElement.BringIntoViewを呼び出していますが、前述のように選択はされる(直前のIsSeletedは効いている)のですが、見える位置まで自動でスクロールはしてくれません。 TreeViewItemであれば正常に動作してくれるということですね。
juntaro

2019/04/25 01:54

Zuishinさん、申し訳ありません。 上記サイトを読んでみましたが、スクロールしてくれない原因は分かりませんでした。 ネストされたノードではなく、ルート直下のItemを操作しようとしているので、下位階層のオープンなども関係ないと思うんですが。
Zuishin

2019/04/25 02:48

話が食い違っているようですが、私が引用した個所を読みましたか?
juntaro

2019/04/25 06:03

申し訳ありません。 読んでみましたが、理解できませんでした。
Zuishin

2019/04/25 06:09 編集

要約するとそのノードが見えるようになる位置を自分で計算してそこまでのスクロールを実装しろと書いてあります。
Zuishin

2019/04/25 06:11

あと理解できなかった時には「読んだ」と言わないでください。普通はそれを読んだとは言いませんから誤解が生じます。
juntaro

2019/04/27 12:40

ありがとうございます。 ただ、ノードが見えるように位置を自分で計算するロジックが分かりません。 これから調査していきます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問