teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

3

追記修正

2022/04/06 07:48

投稿

nya-3
nya-3

スコア27

answer CHANGED
@@ -1,8 +1,24 @@
1
+ ```ここに言語を入力
1
2
  splitContainer1.Panel2.VerticalScroll.SmallChange = 50;
2
3
  splitContainer1.Panel2.VerticalScroll.LargeChange = 50;
3
4
  splitContainer1.Panel2.HorizontalScroll.SmallChange = 50;
4
5
  splitContainer1.Panel2.HorizontalScroll.LargeChange = 50;
5
6
 
7
+ private void splitContainer1_Panel2_Scroll(object sender, ScrollEventArgs e)
8
+ {
9
+ int newData = (e.NewValue / 50) * 50;
10
+ if (e.ScrollOrientation == ScrollOrientation.VerticalScroll)
11
+ {
12
+ splitContainer1.Panel2.VerticalScroll.Value = newData;
13
+ }
14
+ if (e.ScrollOrientation == ScrollOrientation.HorizontalScroll)
15
+ {
16
+ splitContainer1.Panel2.HorizontalScroll.Value = newData;
17
+ }
18
+ Console.WriteLine(newData.ToString());
19
+ }
20
+ ```
21
+
6
22
  これで、50ずつ移動することが出来るようになりました。
7
23
 
8
24
  ただし、ScrollBerを右や下の端まで移動すると、ズレることがあります。
@@ -18,4 +34,6 @@
18
34
 
19
35
  どうやら、SplitContainer1のPanel2、このAutoScroll内のサイズ?が
20
36
  50で割り切れるサイズになっていないために動作がおかしい様子。
37
+ ホイールでスクロールした場合と、バーを持ってスクロールさせた場合に許容できない動作になります。
21
- でも、どのように対応すれば良いのか分からず断念するかもしれないです。
38
+ でも、どのように対応すれば良いのか分からず断念するかもしれないです。
39
+ 何かアドバイスがあればください。

2

追記

2022/04/06 07:42

投稿

nya-3
nya-3

スコア27

answer CHANGED
@@ -8,4 +8,14 @@
8
8
  ただし、ScrollBerを右や下の端まで移動すると、ズレることがあります。
9
9
 
10
10
  一番やりたかったことは、グリッド表示したものにスナップすることですが、
11
- これは調べても情報が見つからないため難しいのかもしれません。
11
+ これは調べても情報が見つからないため難しいのかもしれません。
12
+
13
+ 16:33 追記
14
+ UserForm1
15
+  →TabPage(Anchor Top,Left) Dock None Location Y=50  ItemSizeは200,30
16
+   →SplitContaine1 Anchor Top,Left Dock Fill SplitterDistance 180
17
+     Panel2(右側) AutoScroll True
18
+
19
+ どうやら、SplitContainer1のPanel2、このAutoScroll内のサイズ?が
20
+ 50で割り切れるサイズになっていないために動作がおかしい様子。
21
+ でも、どのように対応すれば良いのか分からず断念するかもしれないです。

1

追記

2022/04/06 04:57

投稿

nya-3
nya-3

スコア27

answer CHANGED
@@ -3,4 +3,9 @@
3
3
  splitContainer1.Panel2.HorizontalScroll.SmallChange = 50;
4
4
  splitContainer1.Panel2.HorizontalScroll.LargeChange = 50;
5
5
 
6
- これで、50ずつ移動することが出来るようになりました。
6
+ これで、50ずつ移動することが出来るようになりました。
7
+
8
+ ただし、ScrollBerを右や下の端まで移動すると、ズレることがあります。
9
+
10
+ 一番やりたかったことは、グリッド表示したものにスナップすることですが、
11
+ これは調べても情報が見つからないため難しいのかもしれません。