- PR -

ListViewのスクロールイベントを取得したい

1
投稿者投稿内容
とび
会議室デビュー日: 2005/03/02
投稿数: 12
投稿日時: 2005-04-18 14:26
お世話になります。
Windows.FormsのListViewコントロールで質問させて下さい。
ListViewコントロールでスクロールされたかどうかを
取得したいのですが、どのように取得すれば良いのでしょうか?


環境:WinXP /VS2003/.NET Framework 1.1 SP-1
burton999
ぬし
会議室デビュー日: 2003/10/06
投稿数: 898
お住まい・勤務地: 東京
投稿日時: 2005-04-18 14:41
WndProc(ref System.Windows.Forms.Message m)をoverrideすればできると思います。
Hongliang
ぬし
会議室デビュー日: 2004/12/25
投稿数: 576
投稿日時: 2005-04-18 14:41
こちらをどうぞ。
http://dobon.net/vb/dotnet/control/firescrollevent.html
とび
会議室デビュー日: 2005/03/02
投稿数: 12
投稿日時: 2005-04-18 15:56
burton999さん、Hongliangさんご返答ありがとうございます。

下記の内容でWndProcをオーバーライドしてみたのですが、ListViewの
スクロールイベントは取得できませんでした。
HScrollBarコントロール等はスクロール時メッセージが飛んでくるのですが・・・。
オーバーライドの仕方に問題があるのでしょうか?

protected override void WndProc(ref Message m)
{
 const int WM_HSCROLL = 0x114;
 const int WM_VSCROLL = 0x115;

 switch (m.Msg)
 {
   case WM_HSCROLL:
    Console.WriteLine(
"水平スクロールバーがスクロールされました。");
break;
   case WM_VSCROLL:
Console.WriteLine(
"垂直スクロールバーがスクロールされました。");
break;
 }
 base.WndProc(ref m);
}
burton999
ぬし
会議室デビュー日: 2003/10/06
投稿数: 898
お住まい・勤務地: 東京
投稿日時: 2005-04-18 16:14
私の環境では問題なくスクロールイベントを取得できますが。。。
System.Windows.Forms.ListViewを継承してクラスを作成しているのですよね?
とび
会議室デビュー日: 2005/03/02
投稿数: 12
投稿日時: 2005-04-18 16:52
burton999さんご返答ありがうございます。

すいません。フォームのWndProcにWM_HSCROLL,WM_VSCROLLイベントが飛んで
くると思っていました。ListViewを継承したサブクラスでWndProcをオーバーライド
し、スクロールイベントを取得しなければいけないのですね。

ListViewを継承したサブクラスで問題なくスクロールイベントが取得出来ました。

burton999さん,Hongliangさんありがとうございました。


1

スキルアップ/キャリアアップ(JOB@IT)