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

フォーム起動時に特定のコントロールのスクロールバーを使えるようにするには?

環境/言語:[.netframework4.0 C#]
分類:[.NET]

2012/06/05(Tue) 11:24:12 編集(投稿者)

フォーム内にスクロールバーのある部品を配置しているWindowsアプリを作っています。

起動後 その部品をクリックするとマウスのホイール操作でスクロールバーを動かすことができます。
しかしこのクリックして部品を選択する一手間が面倒ですので フォーム起動時に何かしらの処理をして
ホイールを操作するとこの部品がスクロールされるようにしたいのですが
うまくいきません。
部品を選択した状態にすればいいのかと思い↓は試してみたのですがうまくいきませんでした。

hoge1.Select();
hoge1.Focus();
this.ActiveControl = hoge1;

知恵を貸してください。

よろしくお願いいたします。
自己レスです。

標準コントロールで試してみたら↑でうまくいきました。
ってことは今使ってるコントロール固有の問題で・・・

オープンソースじゃない海外の有料コントロールなので中身はいじれないし
少し考え方を変えてマウスのコントロールをエミュレートしてフォーム起動時にこのコントロールをクリックしてやる制御を入れることにしました。

今のところ問題なさそうなのでいったん解決にします。
お騒がせしました
解決済み!
たか@WEB屋 さんこんにちは、おのでらです。

> フォーム内にスクロールバーのある部品

この部品とはなんでしょうか?

>部品を選択した状態にすればいいのかと思い↓は試してみたのですがうまくいきませんでした。
>
>hoge1.Select();
>hoge1.Focus();
>this.ActiveControl = hoge1;

この処理はどこに記述しているでしょうか? 私の環境でスクロールバーのあるテキストボックスを配置して、フォームの Load イベント内に記述しましたが問題なく動作しました。(プログラムをいれていない場合は Button にフォーカスが行くようになっています。)
投稿したら解決済みになっていた orz

フォームの Shown イベントで同様の処理を入れたらどうなりますか?

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