引言

最新有一个winform项目使用的是DevExpress的控件,所以最近都在摸索使用这套控件,实在是佩服整套控件的强大,同时代码写起来也简洁。客户有一个需求,希望报表结果能在外接的大屏幕上定时滚动。这个报表我们使用的控件就是GridControl,查询结果一屏不能显示完全,增加一个定时器,指定时间让GridView自动滚动显示下一屏的信息。

同事的实现

但是看到同事实现的代码时,却觉得有点不舒服。他大概的代码如下:

/// <summary>
/// 当前的行索引
/// </summary>
private int currentRowHandle = ;
/// <summary> 
/// 总共含有的行
/// </summary> 
private int totalRowCount = ; 
/// <summary>
/// 定时器定时事件
/// </summary>
private void timerScroll_Tick(object sender, EventArgs e)
{
if (currentRowHandle == totalRowCount)
currentRowHandle = ;
else
{
currentRowHandle += ;
if (currentRowHandle > totalRowCount)
currentRowHandle = totalRowCount;
} gridView1.FocusedRowHandle = currentRowHandle;
}

为了实现GridView自动滚动的功能,代码引入了2个字段,而且将每次滚动的行数写死成40,当窗体和控件的大小进行缩放的时候,有可能一个屏幕无法显示40行数据,就有可能有些数据永远也显示不了。

我的实现

通过查阅DevExpress的手册,发现GridView已经有提供方法可以直接使用来达到滚动翻页的效果,而且代码一如既往的简洁,无需引入任何字段。改进的代码如下:

/// <summary>
/// 定时器定时事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void timerScroll_Tick(object sender, EventArgs e)
{
if (gridView1.IsLastRow)
{
gridView1.MoveFirst();
}
else
{
gridView1.MoveNextPage();
}
}

最后送上测试的结果

DevExpress GridView自动滚动的更多相关文章

  1. DevExpress gridview下拉框的再次研究

    原文:DevExpress gridview下拉框的再次研究 前几天写了一篇关于研究DevExpress gridview下拉框的随笔(DevExpress gridview下拉框repository ...

  2. Android: 阻止ScrollView随着数据加载自动滚动

    当ScrollView中有类似GridView的控件时,当数据加载后ScrollView会自动滚动.要阻止这种事情发生,我们需要做的是在ScrollView的下层容器中添加android:descen ...

  3. Android点击列表后弹出输入框,所点击项自动滚动到输入框上方

    使用微信的朋友圈会发现,点击某一条评论后输入框会弹出来,然后所点击的那一项会自动地滚动到输入框上方的位置,这样如果开始所点击的评论在屏幕很下方的话,就不会被输入框遮住,虽然微信这一点在我的MX2频繁点 ...

  4. iOS 图片轮播图(自动滚动)

    iOS 图片轮播图(自动滚动) #import "DDViewController.h" #define DDImageCount 5 @interface DDViewContr ...

  5. Android 文字自动滚动(跑马灯)效果的两种实现方法[特别好使]

    有时候在xml中写的跑马灯效果不滚动:原因有以下 Android系统中TextView实现跑马灯效果,必须具备以下几个条件: 1.android:ellipsize=”marquee” 2.TextV ...

  6. EUI 自动滚动的聊天文本

    一 自动滚动的聊天文本 当文本输入改变时,将scrollV值等于maxScrollV值. private scrollLabel:eui.Label; egret.Tween.).call(()=&g ...

  7. js点击左右滚动+默认自动滚动类

    js点击左右滚动+默认自动滚动类 点击下载

  8. Android 如何实现带滚动条的TextView,在更新文字时自动滚动到最后一行?

    1.在布局文件中放置一个TextView,给它添加scrollbars和fadeScrollbars两个属性. 如下设置:滚动条为垂直滚动条,并且一直可见(当TextView中的文字行数超过页面能显示 ...

  9. JAVA 如何使JScrollPane中的JTextArea自动滚动到最后一行?

    1.要使JTextArea带有滚动条,需将JTextArea对象添加到JScrollPane中. JTextArea logArea = new JTextArea(15, 35); //创建JTex ...

随机推荐

  1. jquery 设置某div里面的内容为此div里面非img标签的内容

    $('#div_1').html($('#div_1').children().not("img")); 要注意 <div id="#div_1"> ...

  2. react组件回顶部

    在挂载更新里面判断滚动条的距离(滚动条不能overflow: auto 踩坑) componentDidMount(){ window.addEventListener('scroll' , ()=& ...

  3. react项目的react-router-dom路由的使用

    现在测试一下react-router-dom路由的使用,首先在App.js这个文件搭配路由 import React, { Component } from 'react'; import {Link ...

  4. 28.Mysql权限与安全

    28.Mysql权限与安全28.1 Mysql权限管理 28.1.1 权限系统的工作原理对连接的用户进行身份认证,合法的用户通过认证,不合法的用户拒绝连接:对通过认证的合法用户赋予相应的权限,用户可以 ...

  5. spring mvc controller中的参数验证机制(一)

    一.验证用到的注解 @Valid 对传到后台的参数的验证 @BindingResult 配合@Valid使用,验证失败后的返回 二.示例 1.传统方式 @PostMapping public User ...

  6. Vc 检测内存泄漏

    启用内存泄漏检测 检测内存泄漏是 C/c + + 调试器和 C 运行时库 (CRT) 的主要工具调试堆函数. 若要启用调试堆的所有函数,在 c + + 程序中,按以下顺序包含以下语句: C++复制 # ...

  7. hadoop启动

    安装完hadoop集群之后,第一次启动之前必须初始化,之后就可以不用再初始化(注意:初始化操作只可以一次) hdfs namenode -format (hadoop namenode -format ...

  8. Unittest中TestCase类中定义的几个特殊方法

    1.setUp():每个测试方法运行前运行,测试前的初始化工作: 2.tearDown():每个测试方法运行结束后运行,测试后的清理工作: 3.setUpClass():所有的测试方法运行前运行,单元 ...

  9. springsecurity 源码解读之 SecurityContext

    在springsecurity 中,我们一般可以通过代码: SecurityContext securityContext = SecurityContextHolder.getContext(); ...

  10. jvm参数与GC

    一.JVM的新生代.老年代.与永久代 JVM中的堆,一般分为三大部分:新生代.老年代.永久代: 1.新生代:主要是用来存放新生的对象,一般占据堆的1/3空间.由于频繁创建对象,所以新生代会频繁触发Mi ...