我正在开发一款适用于移动设备的应用,并希望将数据网格滚动条按钮放大,以增强触摸屏的可用性。我不想改变系统设置窗口显示属性,因为这会影响整个设备。
是否有一种简单的方法可以改变数据网格视图上滚动条的宽度?
答案 0 :(得分:1)
我认为你必须自己动手。不过不用担心,它应该不那么难。我说应该不应该因为我已经有一段时间了,因为我已经完成了.NET CF UI(从臀部拍摄),但已经为.NET 2.0触摸屏用户界面实现了自定义滚动条。
那就是说,这就是你需要做的事情:
这是简单的方法。你没有得到拖拽和东西,但这在很小的用户界面中很少有用。如果你愿意的话,你也可以稍后放入。
警告:网格视图可能没有公开ScrollUp / Down API。在这种情况下,您需要将自定义控件覆盖在网格视图的顶部,该网格视图将显示滚动条。您使用自定义控件隐藏内置滚动条,而不是调用ScrollUp / Down,而是将Windows消息发布到自定义控件后面的区域,以“伪造”点击并使网格视图以您喜欢的方式移动。
嗯。我假设.NET Compact Framework是因为你提到它是用于移动设备的......它是CF吗?如果没有,一切都应该更容易一些。
修改
的基本样本答案 1 :(得分:1)
FieldInfo fi = dataGridView1.GetType().GetField( "m_sbVert", BindingFlags.NonPublic | BindingFlags.GetField | BindingFlags.Instance );
( ( VScrollBar ) fi.GetValue( dataGridView1 ) ).Width = 50;
fi = ultraGrid1.GetType().GetField( "m_sbHorz", BindingFlags.NonPublic | BindingFlags.GetField | BindingFlags.Instance );
( ( HScrollBar ) fi.GetValue( ultraGrid1 ) ).Height = 0;
其中50是垂直滚动条宽度,0是水平滚动条高度。
using System.Reflection;
一切都在表格的开头。
适用于WinCE 5.0
。