C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト


■96384 / )  Re[5]: トラックバーにスライダーを二つ付ける方法
□投稿者/ 魔界の仮面弁士 (2916回)-(2020/11/18(Wed) 14:10:00)
No96383 (鮭 さん) に返信
>>> 自分でmousemoveやmousedownのところで
>>> スライダー検出やマウスダウンした時の挙動を記述するしかないでしょうか?
>>> もっと良い方法があればお教えください。
>> 案2) 素の Control から継承するなどして、フルスクラッチで自作する
> フルスクラッチとはどういう意味でしょうか?

「『もっと良い方法』は無さそうです」という意味です。
http://e-words.jp/w/%E3%83%95%E3%83%AB%E3%82%B9%E3%82%AF%E3%83%A9%E3%83%83%E3%83%81.html


既存の TrackBar には複数の Thumbs を管理する機能が無いため、
TrackBar を継承して作ることはできないと思います。

そのため、素の Control あるいは UserControl などを使って実装し、
マウスやキーボード操作に対する処理などについても、すべて自力実装で
記述する必要があると思います。


なお、KOZ さんが紹介されていた RangeSelectorControl コントロールの場合は、
UserControl の OnPaint メソッドをオーバーライドして実装されているようです。
多少の問題はありそうでしたが…。

・キーボード操作に対応していない
・例外をことごとく握りつぶしている
・UI スレッドからの Thread.Sleep の直接利用
・PaintEventArgs をフィールド変数に保持して、別のタイミングで使いまわしている
・e.Grapchis ではなく、CreateGraphics を用いているせいか、ちらつきが大きい
・Image.FromFile など、外部ファイルに追加依存している
・描画時に生成した Grapchis や Brush の Dispose 処理が全くない
返信 編集キー/


管理者用

- Child Tree -