DOBON.NETプログラミング道掲示板
(現在 過去ログ5 を表示中)
HOME
HELP
新規作成
新着記事
トピック表示
発言ランク
ファイル一覧
検索
過去ログ
[
最新記事及び返信フォームをトピックトップへ
]
[ トピック内全3記事(1-3 表示) ] <<
0
>>
■35165
/ inTopicNo.1)
タブレット等でスワイプによるスクロールを実装
▼
■
□投稿者/ 炎の妖精さん
一般人(7回)-(2022/10/13(Thu) 10:06:36)
環境/言語:[Windows10(64bit)_VB.NET]
分類:[.NET]
お世話になっております。
表題の通り、スワイプでのスクロールを実装したいと考えております。
Windowsフォーム上に以下のコントロールを配置しました。
■FlowLayoutPanel(スクロールを表示してここでスクロールしたい)
└■UserControl(5*10のボタンが並べられている)
├■Button01
├■Button02
…
├■Button49
└■Button50
なぜこのような配置の仕方をしている理由ですが、
タブレットの解像度が1920*1280、ボタンや文字もなるべく大きめということもあり、
5*10のボタンを配置する場合にはタブレットの画面に入りきらない為、スクロールを実装することになりました。
DataGridViewでは自動でスワイプによるスクロールが出来るのですが、
上記のような配置の場合ではスクロールが出来ませんでした。
※もちろんマウスホイールによるスクロールは可能でした
処理としてはUserControlのスクロール移動量を取得して
FlowLayoutPanelにスクロール移動量を付加させるというような処理になるのでしょうか?
スクロールに関しての処理は初めての為、ご教授いただければ幸いです。
引用返信
削除キー/
編集
削除
■35167
/ inTopicNo.2)
Re[1]: タブレット等でスワイプによるスクロールを実装
▲
▼
■
□投稿者/ 魔界の仮面弁士
大御所(1454回)-(2022/10/13(Thu) 11:14:13)
2022/10/13(Thu) 11:18:44 編集(投稿者)
Windows Touch あるいは スタイラス対応のタブレット デバイスが
現在手元に無いため、動作を確認せずに回答しています。
余裕があれば追って確認しますが…とりあえず状況把握として逆質問。
■
No35165
に返信(炎の妖精さんさんの記事)
> 上記のような配置の場合ではスクロールが出来ませんでした。
マウスホイールによる操作の場合、
「ホバーしたときに非アクティブウィンドウをスクロールする」
が On / Off の状態で動作が変わるかと思いますが、スワイプの場合、
上記の設定切替に近い動作にしたいのでしょうか。それともスワイプは
上記設定によらず、常に同じ動作になって欲しいのでしょうか。
https://dynabook.com/assistpc/faq/pcdata2/017955.htm
> Windowsフォーム上に以下のコントロールを配置しました。
Button, UserControl, FlowLayoutPanel のそれぞれに対して
・AutoSize プロパティによって自動変更されるもの
・Dock や Anchor などによってリサイズされうるもの
・固定サイズで配置されるもの
などがどうなっているのか定かでは無いので、
当方で状況を読み切れていない部分があるかもしれませんが:
今回、FlowLayoutPanel が採用されている理由は何ですか?
FlowLayoutPanel 内にあるコントロールが UserControl 一つだけなら
フローレイアウトになることも無さそうなので、素の Panel で良いような。
(案1) デザイン時にスクロールできない
Panel1 (AutoScroll = False)
└UserControl1 (AutoScroll = True , Dock = Fill, Anchor = Top,Left)
(案2) デザイン時にもスクロール可能だが、カプセル化しにくいかも?
Panel1 (AutoScroll = True)
└UserControl1 (AutoScroll = False, Dock = None, Anchor = Top,Left)
FlowLayoutPanel 版は、Panel 版の 案2 に近い設計なのかと予想していますが、
上記それぞれを試した時、
a) マウス(あるいはタッチパッド)によるホイール回転操作
b) マウスによるパン操作(ホイールを押しながらのドラッグ)あるいは同等のタッチパッド操作
c) スタイラス(ペン)を画面に押し付けた状態でのスワイプ操作
d) スタイラスのスクロールボタンを押した状態でのホバー操作
e) Windows Touch によるスワイプ操作
の動作に違いが生じるでしょうか。それとも 案1/案2 で変わらないでしょうか。
a と d は非アクティブ状態でも操作できるのに対して、
b, c, e はタップ(あるいはクリック)操作が先に入るので、
常にアクティブウィンドウに対して操作することになるという違いがありそうです。
ところで、今回のスワイプ操作はどの場所から始める想定でしょうか?
ア) FlowLayoutPanel のスクロールバー部
イ) FlowLayoutPanel の余白部(UserControl の外側)
ウ) UserControl のクライアント領域
エ) 各ボタンの上
オ) 上記以外
フォーカスを受け取れるコントロール、かつ、スクロール可能なコントロールの
上でスワイプ操作を開始すると、スクロールが発生し無さそうなので
念のために確認しています。
引用返信
削除キー/
編集
削除
■35168
/ inTopicNo.3)
Re[1]: タブレット等でスワイプによるスクロールを実装
▲
▼
■
□投稿者/ 炎の妖精さん
一般人(8回)-(2022/10/13(Thu) 11:16:02)
すみません。解決しました。
他社サイト様にて
C#で書かれたコードをVB.NETに書き直し
一部のコードを直したら想定通りの動作となりました。
■Windowsフォームアプリにおけるスワイプによるスクロールについて
※URLは長いので省略させていただきます。
解決
済
み!
引用返信
削除キー/
編集
削除
トピック内ページ移動 / <<
0
>>
このトピックに書きこむ
過去ログには書き込み不可
Mode/
通常管理
表示許可
Pass/
HOME
HELP
新規作成
新着記事
トピック表示
発言ランク
ファイル一覧
検索
過去ログ
-
Child Tree
-