苏州三木软件科技有限公司

 找回密码
 立即注册
搜索
热搜: 活动
查看: 5587|回复: 2

触摸屏设备怎么直接在屏幕上滑动表格而不是用滚动条

[复制链接]

13

主题

16

帖子

137

积分

注册会员

Rank: 2

积分
137
发表于 2025-3-6 16:13:09 | 显示全部楼层 |阅读模式
本帖最后由 微信用户_62 于 2025-3-6 16:15 编辑

触摸屏设备怎么直接在屏幕上滑动表格而不是用滚动条或者怎么放大滚动条?
回复

使用道具 举报

104

主题

423

帖子

2779

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2779
QQ
发表于 2025-3-6 19:49:25 | 显示全部楼层
我帮你问了一下AI,可以使用下面的方法。得在自定义窗体里面使用了。
在触摸屏设备上实现 C1FlexGrid 表格的滑动操作
在触摸屏设备上,直接在屏幕上滑动 C1FlexGrid 表格而不是使用滚动条,可以通过以下方法实现:
1. 隐藏自带滚动条并使用自定义滚动条
C1FlexGrid 控件的自带滚动条可以隐藏,然后在屏幕的右侧或底部添加自定义滚动条来操作滚动 C1FlexGrid。具体步骤如下:
  • 设置 C1FlexGrid 的滚动条属性:
使用 ScrollPosition 属性获取或设置滚动条的偏移量。
使用 ScrollPositionChanging 和 ScrollPositionChanged 事件来处理滚动条的变化。
  • 创建自定义滚动条:
添加 ScrollBar 控件到窗体上,并设置其属性。
在 ScrollPositionChanged 事件中更新自定义滚动条的值。
在自定义滚动条的 ValueChanged 事件中更新 C1FlexGrid 的 ScrollPosition 属性。
  • 初始化滚动条:
根据 C1FlexGrid 的初始化状态设置滚动条的 Maximum 和 ViewportSize 属性。
  1. private void InitScrollbar(C1FlexGrid flexGrid)
  2. {
  3.     double allColumnsWidth = 0;
  4.     double allRowsHeight = 0;
  5.     foreach (Column col in flexGrid.Columns)
  6.     {
  7.         allColumnsWidth += col.Width.Value;
  8.     }
  9.     foreach (Row row in flexGrid.Rows)
  10.     {
  11.         allRowsHeight += row.Height;
  12.     }
  13.     if (allRowsHeight > flexGrid.Height)
  14.     {
  15.         scrollbarVert.Visibility = Visibility.Visible;
  16.         scrollbarVert.Maximum = allRowsHeight - flexGrid.Height;
  17.         scrollbarVert.ViewportSize = flexGrid.Height;
  18.         scrollbarHori.SmallChange = 1;
  19.     }
  20.     else
  21.     {
  22.         scrollbarVert.Visibility = Visibility.Collapsed;
  23.     }
  24.     if (allColumnsWidth > flexGrid.Width)
  25.     {
  26.         scrollbarHori.Visibility = Visibility.Visible;
  27.         scrollbarHori.Maximum = allColumnsWidth - flexGrid.Width;
  28.         scrollbarHori.ViewportSize = flexGrid.Width;
  29.         scrollbarHori.SmallChange = 1;
  30.     }
  31.     else
  32.     {
  33.         scrollbarHori.Visibility = Visibility.Collapsed;
  34.     }
  35. }
  36. private void flxg_ScrollPositionChanged(object sender, EventArgs e)
  37. {
  38.     Point position = flxg.ScrollPosition;
  39.     scrollbarHori.Value = -position.X;
  40.     scrollbarVert.Value = -position.Y;
  41. }
  42. private void scrollbarHori_ValueChanged(object sender, RoutedPropertyChangedEventArgs<double> e)
  43. {
  44.     flxg.ScrollPosition = new Point(-scrollbarHori.Value, flxg.ScrollPosition.Y);
  45. }
  46. private void scrollbarVert_ValueChanged(object sender, RoutedPropertyChangedEventArgs<double> e)
  47. {
  48.     flxg.ScrollPosition = new Point(flxg.ScrollPosition.X, -scrollbarVert.Value);
  49. }
复制代码


回复

使用道具 举报

104

主题

423

帖子

2779

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2779
QQ
发表于 2025-3-6 19:57:08 | 显示全部楼层
我平台里面的表格控件使用的是C1FlexGrid,有什么特殊功能想实现,可以问问AI。
换一种问法可以大大提高自己的开发效率。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|苏州三木软件科技有限公司 ( 苏ICP备2022038390号 )

苏公网安备 32058502010732号

GMT+8, 2025-5-6 22:23 , Processed in 0.082223 second(s), 23 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表