在 FlexGrid 控件中指定最右侧显示的列

简介: FlexGrid 控件提供了指定左侧显示列的功能。因项目的需要,要求能够指定最右侧显示的列。 实现方法: 获取表格客户区宽度,然后通过每列的宽度计算出水平滚动条的位置。 但是有一个麻烦,就是垂直滚动条的问题。
FlexGrid 控件提供了指定左侧显示列的功能。因项目的需要,要求能够指定最右侧显示的列。
实现方法:
获取表格客户区宽度,然后通过每列的宽度计算出水平滚动条的位置。
但是有一个麻烦,就是垂直滚动条的问题。
首先要能判断是否有垂直滚动条,
然后有垂直滚动条时,需要减出垂直滚动条的宽度,
但是控件没有提供这方面的接口。

猜想控件的滚动条可能是两种情况:
1。FlexGrid是复合控件,其中包含了滚动条对象。
这样的话,用reflector查看一下对象命名,可以通过反射访问到内部的滚动条对象。

2。是传统Win32的滚动窗体。
这样的话,可以通过win32 api函数来判断。

用reflector看了一下控件代码,是第二种情况。
所以用win32 api来解决。
用api函数
lStyle = GetWindowLong(hWnd, GWL_STYLE);
获取Style然后判断
Style中是否有 WS_VSCROLL

如果有就代表有 垂直滚动条。
再获取 滚动条的最大值和最小值,如果相等则滚动条不可见。不相等则可见。

目录
相关文章
|
缓存 编解码 网络协议
一文带你由浅入深Netty异步非阻塞世界
一文带你由浅入深Netty异步非阻塞世界
一文带你由浅入深Netty异步非阻塞世界
|
7月前
|
运维 网络协议 Linux
从0到1:Linux 系统 TCP 缓冲区调优实战指南
本文将带你了解: ✅ 如何查看当前 TCP 缓冲区大小 ✅ 如何根据业务需求调整接收/发送缓冲区 ✅ 实际调参案例与注意事项 适合正在排查网络性能瓶颈的一线网络工程师、系统运维人员阅读。
|
11月前
|
C#
.NET编程技巧:C#中字节与其他数据类型转换方法
在C#中将不同数据类型互相变更至二进制格式需要注意每种数据类型特定方法以及可能涉及特定系统资源比如内存流等。正确理解每种方法并选择最适合当前场景下最高效率且安全性高且易于维护代码方式至关重要。
452 13
|
11月前
|
存储 安全 固态存储
基于C#实现的支持文件传输的Socket聊天室
基于C#实现的支持文件传输的Socket聊天室
539 5
|
Java 物联网 编译器
C#一分钟浅谈:.NET Core 与 .NET 5 区别
本文对比了 .NET Core 和 .NET 5,从历史背景、主要区别、常见问题及易错点等方面进行了详细分析。.NET Core 侧重跨平台支持和高性能,而 .NET 5 在此基础上统一了 .NET 生态系统,增加了更多新特性和优化。开发者可根据具体需求选择合适的版本。
769 7
|
编解码 安全 算法
Java多线程基础-18:线程安全的集合类与ConcurrentHashMap
如果这些单线程中的集合类确实需要在多线程中使用,该怎么办呢?思路有两个: 最直接的方式:使用锁,手动保证。如多个线程修改ArrayList对象,此时就可能有问题,就可以给修改操作进行加锁。但手动加锁的方式并不是很方便,因此标准库还提供了一些线程安全的集合类。
1078 4
解决requried a bean of type xxx的问题(可能原因之一)
解决requried a bean of type xxx的问题(可能原因之一)
1018 0
|
消息中间件
.NET 中 Channel 类简单使用
`System.Threading.Channels` 提供异步生产者-消费者数据结构,用于.NET Standard上的跨平台同步。频道实现生产者/消费者模型,允许在任务间异步传递数据。简单示例展示如何创建无界和有界频道,以及多生产者和消费者共享频道的场景。频道常用于内存中的消息队列,通过控制生产者和消费者的速率来调整系统流量。
362 0
|
安全 API C#
C# | System.IO.Pipelines 很酷的读写数据流方式!
文本分享一种新的读写数据流方式 —— System.IO.Pipelines。这个东西在 .NET Core 2.1 中出现了,它能够帮助你更高效地处理数据流。 System.IO.Pipelines 是啥? System.IO.Pipelines 是一个用于读写数据流的高性能 API。它主要由三个部分组成:Pipe、PipelineReader 和 PipelineWriter。 Pipe 是一个异步、线程安全的缓冲区,它让数据在生产者和消费者之间流动。PipelineReader 和 PipelineWriter 则是 Pipe 的读取和写入端点。
1106 0
C# | System.IO.Pipelines 很酷的读写数据流方式!
|
存储 传感器 网络协议
通信协议缓冲区管理全景:TCP、UDP、ZMQ、DBus、SSL、SOME/IP通讯协议的缓冲区解析...
通信协议缓冲区管理全景:TCP、UDP、ZMQ、DBus、SSL、SOME/IP通讯协议的缓冲区解析...
943 0

热门文章

最新文章