1.拖一个timerl控件:

2.拖一个panel控件用于覆盖滚动条(起到隐藏滚动条的效果):

3.再拖一个skinWaterTextBox控件到panel上面(演示用),名称为skinWaterTextBox1,text属性添加内容:

4.窗体加载事件中添加启动定时器代码:

// 项目简介滚动
this.timer1.Interval = 1000;
this.timer1.Tick += timer1_Tick;//到时间的时候执行事件;
this.timer1.Start();

5.继续添加如下方法:

// 发送消息
[DllImport("user32.dll", EntryPoint = "SendMessage")]
public static extern int SendMessage(IntPtr hWnd, int wMsg, int wParam, int lParam);
// 获取滚动条位置
[DllImport("user32.dll")]
public static extern int GetScrollPos(IntPtr hwnd, int nBar);
// 设置滚动条位置
[DllImport("user32.dll")]
static extern int SetScrollPos(IntPtr hWnd, int nBar, int nPos, bool bRedraw);public const int EM_LINESCROLL = 0xb6;private void timer1_Tick(object sender, EventArgs e)
{int i = GetScrollPos(this.skinWaterTextBox1.Handle, 1);// 向下滚动一行SendMessage(this.skinWaterTextBox1.Handle, EM_LINESCROLL, 0, 1); // 0,1代表垂直滚动条向下滚动// 判断是否有位置变化,如果没有则说明到了底部,返回开始处if (i == GetScrollPos(this.skinWaterTextBox1.Handle, 1)){// 回到顶部,这里用SetScrollPos似乎有问题,滚动条和文字不是同步更新this.skinWaterTextBox1.SelectionStart = 0;this.skinWaterTextBox1.SelectionLength = 1;this.skinWaterTextBox1.ScrollToCaret();this.skinWaterTextBox1.SelectionLength = 0;}Console.WriteLine(i);
}private void textBox1_MouseEnter(object sender, EventArgs e)
{this.timer1.Stop();
}private void textBox1_MouseLeave(object sender, EventArgs e)
{this.timer1.Start();
}


6.分别将textBox1_MouseEnter和textBox1_MouseLeave方法添加到skinWaterTextBox1的mouseHover和mouseLeave事件:

附加panel定时循环滚动方法:

//----------------------------写在窗口加载方法中-------------------------//
this.timer2.Interval = 1000;
this.timer2.Tick += timer2_Tick;//到时间的时候执行事件
this.timer2.Start();
//----------------------------写在定时器方法中---------------------------//
/// <summary>
/// panel定时循环滚动
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void timer2_Tick(object sender, EventArgs e)
{int maximum = skinPanel16.VerticalScroll.Maximum;int smallChange = skinPanel16.VerticalScroll.SmallChange;int largeChange = skinPanel16.VerticalScroll.LargeChange;int minimum = skinPanel16.VerticalScroll.Minimum;int currtValue = skinPanel16.VerticalScroll.Value;// 判断是否有位置变化,如果没有则说明到了底部,返回开始处if ((currtValue + largeChange) >= maximum){skinPanel16.VerticalScroll.Value = 0;}else{skinPanel16.VerticalScroll.Value += 20;}
}

C#设置滚动条定时滚动相关推荐

  1. Javascript设置滚动条向上滚动的方法;JS设置滚动条滚动的代码

    很久就没有碰前端的后果就是,自己被公司叫来帮忙自己结果啥都会,但是就想不起怎么操作 画布哆嗦 咱们直接来看代码 重点一:获取滚动条Y轴的数据 这个方法有很多,我就不一一讲述了,毕竟结果都一样就好 直接 ...

  2. duilib设置滚动条自动滚动到底

    控件属性中添加 vscrollbar="true" autovscroll="true" 分别是启用竖向滚动条,是否随输入竖向滚动

  3. css给超出内容设置滚动条和去除滚动条显示:

    盒子内部元素溢出自动生成滚动条,使用:  overflow: scroll; .drawerBox{width: 300px;height: 500px;border: 1px solid red;o ...

  4. CSS_如何设置滚动条样式_超出左右滚动

    CSS-界面滚动时不显示滚动条 设置滚动条的样式: div::-webkit-scrollbar {//width: 0;height: 0; } 关于::-webkit-scrollbar ::-w ...

  5. android设置滚动条样式,Android零基础入门|滚动视图ScrollView-设置滚动条样式

    前面几期学习了ProgressBar系列组件.ViewAnimator系列组件.Picker系列组件和时间日期系列组件,接下来几期继续来学习常见的其他组件. 一.ScrollView概述 从前面的学习 ...

  6. html滚动字幕怎么设置大小,css怎么设置滚动条宽度?

    现在很多项目中都用到了滚动条,而且在有的时候,用到的是模拟滚动条,很多大型邮箱都是利用css样式来设置的,那么CSS如何设置滚动条宽度呢? css中可以使用::-webkit-scrollbar伪类选 ...

  7. 设置滚动条滚动但不显示滚动条

    /*设置滚动条滚动但不显示 开始*/ .projectpanel{width: 100%;overflow-y:scroll;overflow-X:hidden;}.projectpanel::-we ...

  8. 怎样设置网页纵向滚动 css,CSS 怎么设置网页下拉条 (滚动条) 样式?

    CSS 怎么设置网页下拉条 (滚动条) 样式? 很多朋友在网页设计中要自定义下拉条 (滚动条) 样式的情景, 下拉条的样式我们可以通过 CSS 来控制的, 下拉条能不能换颜色或者做的更好看一些呢? 那 ...

  9. Qt图片定时滚动播放器+透明过渡动画

    目录 参考 结构 PicturePlay.pro main.cpp myqlabel.h 自定义QLabel myqlabel.cpp自定义QLabel pictureplay.h picturepl ...

最新文章

  1. Windows 2003 Server 设置技巧
  2. ORACLE-osi分层模型.md
  3. hibernate 高级映射 --张国亮总结第一季
  4. 移动App的发展趋势
  5. 使用计算机来解决实际问题首先要完成,《操作系统》试题库-填空题
  6. fitbit手表中文说明书_如何获取和分析Fitbit睡眠分数
  7. 并行编程2——多核体系架构
  8. CSDN博客投票活动开始了
  9. SpringBoot2 集成日志,复杂业务下的自定义实现
  10. 用组策略发布软件的简单解决办法
  11. linux syslog 3
  12. 就算神游 之五:东京迪斯尼乐园 1
  13. 11. JavaScript 对象
  14. 智能优化算法:黑猩猩优化算法-附代码
  15. jvm系列:Java服务GC参数调优案例
  16. Google--PageRank(网页级别)技术解密[转]
  17. scala学习之旅(十三):隐式转换和隐式参数
  18. 联想小新 Air 13 (Pro) 6,7代笔记本安装Win7系统
  19. Spring Getting Started Guides migrated to Asciidoctor
  20. 如何在地图上显示多个红包商店 vue

热门文章

  1. 数字图像处理第四章——图像复原(下)
  2. Ubuntu蓝牙耳机连接失败问题解决
  3. 如何通过短视频拍摄手法提升播放量?原来是用了这5点!
  4. 当前URL编码的规则
  5. 融资约束指数(KZ、SA、FC、WW)(2000-2021年)
  6. wait与notify的使用
  7. 第四题乙醇偶合制备 C4 烯烃
  8. 万圣节活动没灵感?收下这份万圣节海报文案大礼包!
  9. uin-app 使用canvas画简易海报
  10. KBP307-ASEMI整流桥KBP307