以前ご紹介したスクロールバーを作ってみましたのC#版です。
スクロールバー自体(MyForm.cs)と、呼び出しプログラム(Scroll.cs)のソースをご紹介しますので、VisualStudio でコンパイルしてみて下さい。
ちなみに、私が使っているのは、暫く更新を怠っているので、Microsoft Visual Studio Community 2019 Version 16.8.5 で、
.Net Framework 4.7.2 です。Windows フォームアプリケーション のプロジェクトを作って下さい。
MyForm.cs と Scroll.cs の2つのファイルだけをプロジェクトに入れ、自動的に作られる他の *.cs ファイルは削除します。
実行時の見た目は以下のような感じです。
関数 | 文例 | |
---|---|---|
Scroll : コンストラクタ | new Scroll(); | |
getbase : 値を得る | var b=scr1.getbase(); | |
setbase : 値を設定 | scr1.setbase(b); | |
setwhole : 全体を設定 | scr1.setwhole(wh); // === whole は base の最大値と view との和 !!! | |
setview : 視野を設定 | scr1.setview(v); | |
setlargechange : 大きな変化量を設定 | scr1.setlargechange(L); | |
setinverse : 右や下からなら true 設定 | scr1.setinverse(false); | |
setx : 位置(x)設定 | scr1.setx(20) | その他、scr1.Location=new Point(x,y); scr1.SetBounds(x,y,w,h); も普通に使える。 |
sety : 位置(y)設定 | scr1.sety(150) | |
setw : 幅設定 | scr1.setw(200) | その他、scr1.Size=new Size(w,h); scr1.SetBounds(x,y,w,h); も普通に使える。 |
seth : 高さ設定 | scr1.seth(25) |
イベント | 伝達の原因 | 文例 | 対応ハンドラ | |
---|---|---|---|---|
BaseChangedMechanical | マウス操作(スクロールとクリック)のみ | scr1.BaseChangedMechanical(o, i)=>{ ... }); | それぞれ第2引数は int | OnBaseChangedMechanical |
BaseChangedAnyway | マウス操作(スクロールとクリック)および set** 関数 (setbase, setwhole, setview) | scr1.BaseChangedAnyway(o, i)=>{ ... }); | OnBaseChangedAnyway | |
BaseChangedByCode | set** 関数 (setbase, setwhole, setview)のみ | scr1.BaseChangedByCode => (o, i)=>{ ... }); | OnBaseChangedByCode |