【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); //水平方向のスクロール情報を設定 }この例だと,水平スクロールバーの情報だけ,取得,設定できますです
垂直スクロールバーは,まぁ,ちょろっと変えれば,実現できるか,と

コメント
イーロン・マスク氏 「X」全利用者に少額課金求める考え示す
“吉田屋”の駅弁 1都23県295人が体調不良を訴える 八戸市保健所
【アゼルバイジャン】ナゴルノカラバフ アルメニア側“事実上敗北” 死者200人超か
【#冬】全国的に暖冬の見通し、気象庁(23/9/19)
城の目の前で交通事故じゃげ
【#線状降水帯】長崎に線状降水帯が出た!(23/9/14)
阪神の「アレ騒ぎ」にインバウンドも警戒? 台湾は“大阪の混雑地”への外出自粛呼びかけ 「事件発生の恐れ」
あす行われる自民党の役員人事 岸田首相に一任(23/9/12)