【C#】TreeViewコントロールのスクロールバー制御
関連記事
- 【#CSHARP】次の案件のスケルトン書いてgitサーバに登録するなどと 【2023年05月16日(火)】
- 生成AI「仕事で利用」2割 正確性などに懸念(23/5/7) 【2023年05月07日(日)】
- 【#RaspberryPI】ラズパイでsudo起動の.Net6アプリがデバグできない件 【2023年04月22日(土)】
- 【#PostgreSQL】テーブルから取得したレコードセットをCSVへ落とそうとすると,空ファイルが出来る...ドロドロドロ 【2023年03月08日(水)】
- 【#git】TortiseGit ver2.14のGitWCRev.exeを動かすとErrorCD:10を出力して,動かない 【2023年02月08日(水)】
ようやっと,わかった!
なんのことはない,Win32APIを叩けばよかったんですね
今回,仕事で水平方向のスクロールバーの位置情報の取得と
復元方法がどうしても必要になって
調べていったら,Win32の
-
GetScrollInfo()
SetScrollInfo()
C#で書き起こしてみましたわん
[StructLayout(LayoutKind.Sequential)] public struct SCROLLINFO { public uint cbSize; public uint fMask; public int nMin; public int nMax; public uint nPage; public int nPos; public int nTrackPos; } public enum ScrollBarDirection { SB_HORZ = 0, SB_VERT = 1, SB_CTL = 2, SB_BOTH = 3 } private enum ScrollInfoMask { SIF_RANGE = 0x1, SIF_PAGE = 0x2, SIF_POS = 0x4, SIF_DISABLENOSCROLL = 0x8, SIF_TRACKPOS = 0x10, SIF_ALL = SIF_RANGE + SIF_PAGE + SIF_POS + SIF_TRACKPOS } [DllImport("user32.dll", CharSet = CharSet.Auto)] public static extern int GetScrollInfo (IntPtr hWnd, int fnBar, ref SCROLLINFO info); [DllImport("user32.dll", CharSet = CharSet.Auto)] public static extern int SetScrollInfo(IntPtr hwnd, int bar, ref SCROLLINFO si, int fRedraw); private void hogehoge() { SCROLLINFO SCInfo = new SCROLLINFO(); SCInfo.cbSize = (uint)Marshal.SizeOf(SCInfo); //この2行は必須 SCInfo.fMask = (int)ScrollInfoMask.SIF_ALL; GetScrollInfo(ctTreeView.Handle, (int)ScrollBarDirection.SB_HORZ, ref SCInfo); //水平方向のスクロール情報を保存 SetScrollInfo(ctTreeView.Handle, (int)ScrollBarDirection.SB_HORZ, ref m_SCInfo, 0); //水平方向のスクロール情報を設定 }この例だと,水平スクロールバーの情報だけ,取得,設定できますです
垂直スクロールバーは,まぁ,ちょろっと変えれば,実現できるか,と

コメント
高速道路、有料2115年まで 半永久化へ改正法成立
【#梅雨】西日本各地が梅雨入り(23/5/29)
ガソリン補助金、9月末終了 6月から段階的に圧縮―経産省
Intel、64ビット専用アーキテクチャ「x86S」のビジョンを公開
はしか、国内で複数の感染者確認 同じ新幹線車両に乗り合わせ
宮崎の高校で491人がインフルエンザ集団感染15日から休校(23/5/18)
【#ウクライナ戦争】「ワグネル」トップ、ウクライナに露軍位置情報の提供提案 米紙報道