DOBON.NET DOBON.NETプログラミング掲示板過去ログ

treeviewでスクロールさせない

環境/言語:[XPSP1/2KSP4 VB.net]
分類:[.NET]

いつもお世話になっています

またもやTreeviewなのですが、ノード本体をクリックして展開するようにしたのはいいんですが、展開したときに
選択したノードがスクロールと言うか動いてしまって、別なノードがポインタの下にきて選択されてしまいます
なので、展開してもスクロールしない様にしたいのですが、どうすればいいのでしょう
よろしくお願い致します
> 選択したノードがスクロールと言うか動いてしまって、別なノードがポインタの下にきて選択されてしまいます

動くのはわかりますが、選択されるというのはSelectedItemを操作しているとしか思えないのですが。。。

> 展開してもスクロールしない様にしたいのですが、どうすればいいのでしょう

仕様だと思うので代替案ですが、TopNodeを覚えて展開後に戻すとか。
BeginUpdateとEndUpdateで囲めばちらつかないかも。
#未確認

メッセージを横取りすれば何とかなりそうですが面倒が感じがします。
代償に見合う処理ではないように思えます。
■No14137に返信(まどかさんの記事)
>>選択したノードがスクロールと言うか動いてしまって、別なノードがポインタの下にきて選択されてしまいます
> > 動くのはわかりますが、選択されるというのはSelectedItemを操作しているとしか思えないのですが。。。

ちょっとでもマウスボタンを離すのが遅れると選択されてしまいます
本当に1瞬だけ押して離せば選択されないのですが…
イベント表示させるとmousedown->beforeexpand->afterexpand->mouseup->beforeexpand->afterexpand
と発生しているようです

> >>展開してもスクロールしない様にしたいのですが、どうすればいいのでしょう
> > 仕様だと思うので代替案ですが、TopNodeを覚えて展開後に戻すとか。
> BeginUpdateとEndUpdateで囲めばちらつかないかも。

うーん…それしか無いのかな…
何か本末転倒な気がして…
というかエクスプローラの場合はスクロールしても選択はされないんですよね…
そういう風な動作してくれればいいだけなんだけど

> #未確認
> > メッセージを横取りすれば何とかなりそうですが面倒が感じがします。
> 代償に見合う処理ではないように思えます。

もう少しがんばってみます
> ちょっとでもマウスボタンを離すのが遅れると選択されてしまいます
> 本当に1瞬だけ押して離せば選択されないのですが…
> イベント表示させるとmousedown->beforeexpand->afterexpand->mouseup->beforeexpand->afterexpand
> と発生しているようです

MouseUpで処理するとか。

DOBON.NET | プログラミング道 | プログラミング掲示板