- - PR -
パネル同時スクロールでスクロールバーを非表示にしたい
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2007-01-10 00:14
初めまして、質問させて頂きます。
Windowsフォームで、SplitContainerにより水平分割した2つのパネルを Panel2のスクロールバーで同時にスクロールさせています。 Panel1, Panel2ともAutoScrollプロパティをtrueに設定し、 Panel2のScrollイベントのハンドラで Panel1.HorizontalScroll.Valueを設定しています。 ここで、Panel1側のスクロールバーを非表示にしたいと思い、 いろいろ試行錯誤してみたのですが、どうにも上手くいきません。 フォームのコンストラクタのInitializeComponentの呼び出し後に 以下のコードを書いてみましたが、効果はありませんでした。
また、デザイナでPanel1のAutoScrollをfalseにして、 上記コードを書いてみたところ、非表示にはなりましたが、 スクロールしたときに一瞬表示されて見えます。 他にもいろいろ試行錯誤してみたのですが、解決できません。 どなたか解決法のわかる方がいらっしゃいましたら、教えてください。 よろしくお願いします。 開発環境は「Visual C# 2005 Professional Edition」です。 | ||||
|
投稿日時: 2007-01-10 01:26
解決法ではないですが、
私がユーザだったら、上下両方にスクロールバーがついていて、 どちらをスクロールさせても連動する方が嬉しいです。 | ||||
|
投稿日時: 2007-01-10 21:50
お返事ありがとうございます。
それも手ではあるのですが、プログラムの仕様上、 操作性の問題よりも縦のスペースが貴重なので スクロールバーを非表示にしたいのです。 | ||||
|
投稿日時: 2007-01-11 08:06
Panel1に新しいPanel(仮にPanel3として)を配置して、Panel2のScrollイベントのハンドラで、Panel3のLocation.Xプロパティを操作するというのはどうでしょうか?
論外だったらスルーしてください _________________ -------------------------------------------- HIRO's.NET VB.NETとC#のTipsを掲載しています [ メッセージ編集済み 編集者: HIRO 編集日時 2007-01-11 08:56 ] | ||||
|
投稿日時: 2007-01-12 22:28
ありがとうございます。
HIROさんにご提示頂いた方法で、同様の動きを実現できました。 今までPanel1に置いてあったコントロールを全てPanel3に移し、 Panel1のAutoScrollをFalseにし、Scrollイベントハンドラを 以下のように記述しました。
最初の投稿に示した方法で上手く行かない理由はわからないままですが… |
1