C# Winform 如何重绘滚动条

问题描述

尝试过自绘,用WinAPIGetScrollInfo获得滚动条信息,但是返回的一直都是0是怎么回事?[DllImport("user32")]privatestaticexternintGetScrollInfo(IntPtrhwnd,intnBar,refSCROLLINFOscrollInfo);

解决方案

解决方案二:
再调用GetLastError获取错误
解决方案三:
GetScrollInfo返回的是滚动条不是滚动位置。
解决方案四:
现在免费的第三方控件一大堆。
解决方案五:
引用2楼caozhy的回复:

GetScrollInfo返回的是滚动条不是滚动位置。

大部分控件的滚动条都解决了,但是同样的代码对textbox,treeview等等的控件有效,但是对listview无效,我不知道为什么,用setscrollinfo可以看见控件的滚动条在动,但是下面的postmessage就没有反应了SetScrollInfo(listView1.Handle,(int)ScrollBarDirection.SB_VERT,refinfo,true);PostMessage(listView1.Handle,0x115,4+0x10000*drawScrollbar1.Value,0);

时间: 2024-09-30 01:27:09

C# Winform 如何重绘滚动条的相关文章

WinForm中重绘滚动条以及用重绘的滚动条控制ListBox的滚动

在本人的上一篇随笔<<高仿QQMusic播放器,浅谈WinForm关于UI的制作 >>一文中,本人对播放器列表右边的灰色滚动条极为不满意,也影响到整个 软件UI的协调性,遂下决心要重绘一个符合自己UI风格的滚动条. 查了很多资料,都找不到直接重写ListBox滚动条的方法,只能曲线救国,先自己 重绘一个带皮肤的滚动条,然后让它取代ListBox现有的滚动条. 老习惯,先传个效果图,你觉得感兴趣就继续看下去,不喜欢的话就此打住, 懒得耽误你宝 贵的时间,嘿嘿 注意,此图中的滚动条宽度

在DataGridView多维表头中横向移动滚动条是在重绘的区域上重新阴影?

问题描述 在DataGridView中添加了多维表头,但是在由于数据很多,在把滚动条向右移动的时候表头显示的是正常了,但是在当我吧滚动条向左重新移动的时候出现了阴影,看了论坛上很多帖子,大概了解了原因.1)主要是重绘表头数据没进行刷新,我是VB.net初学者,应该是在Scroll事情中强制刷新重绘表头,请问高手,用VB.net语言怎么编写代码,PrivateSubRowMergeView_Scroll(ByValsenderAsObject,ByValeAsSystem.Windows.Form

谁有winform重绘控件之类的视频或者教程。。。

问题描述 谁有winform重绘控件之类的视频或者教程... 谁有winform重绘控件之类的视频或者教程,最好是视频...... 解决方案 这不需要什么教程,无非就是重写OnDraw,调用Control.CreateGraphics,然后绘制. 解决方案二: msdn里关于System.Drawing中的基本绘图函数,Pen.Brush等等学会,外加一些美术和几何的知识.

用SetStyle方法重绘你的窗体

鲜为人知的SetStyle方法可以让你控制重绘一个窗体的方式. by Ken Getz 注:Ken Getz在Orlando的VSLive!上同Brian Randell一起举办了一个主题为"Build a Rich Client App with Visual Studio .NET"的研讨会.本篇技巧选自该研讨会的资料.运用GDI+和Windows窗体,我们可以很容易地创建一个渐变色(gradient)来填充一个区域.运用.NET Framework提供的简单的方法,你可以创建li

重绘-VC,很急、很急,求救!!

问题描述 VC,很急.很急,求救!! VC++ 6.0 中怎么使在View类视图上给绘制的网格线.图形.坐标轴等,在滚动条滚动时依旧能够显示,即重绘!! 解决方案 如果你肯采纳我的回答,我可以写一个完整的例子给你.不过一个问题我只能挑一样做给你.比如演示下网格线和滚动视图的绘制.如果要全回答,最好你分开问. 解决方案二: 就是GDI绘图,现在绘制后有什么具体的问题? 解决方案三: void CQ185823View::OnDraw(CDC* pDC) { CQ185823Doc* pDoc =

Datagridview的重绘问题

问题描述 我在Datagridview中重绘了一个走试图,但是在拖动滚动条后,我画的线就乱了啊,我想这个是Datagridview的刷新问题,有没有高手帮我解决一下.[img=http://home.51.com/photo.view.php?id=100063385&user=zf416002468#100063385][/img]拖动滚动条就是这样的了. 解决方案 解决方案二:因为你的图是绘上去的,拖动滚动条当然会破坏原先的图.你可拖动滚动条后,调用Invalidate方法刷新控件并重绘你的

mfc-MFC Tree控件不进行重绘!!!

问题描述 MFC Tree控件不进行重绘!!! 清空Tree空间后,重新添加节点,然后自动展开,在展开时应该发送WM__SIZE 消息进行重绘,但并没有发送,导致客户区大小不当滚动条无法显示,请问这是什么原因??? 解决方案 MFC重绘的按钮控件MFC Tree Control控件使用MFC中对tree list控件的遍历

C# ListView Item高亮背景重绘

问题描述 用ListView实现以下效果实现如下效果主要的功能1把图片画到选中的项目上(包括自定义的图片,默认的图标,默认文字,默认文字颜色)2对所有可见的项目进行绘制如图片中标注3这个3单选有效果多选也有效果(注意行高)附件默认的实在是难看请出能实现这样功能的有效代码 解决方案 解决方案二:水平滚动条不要出现解决方案三:不需要重绘,如果你就是希望使用完整的WindowsVista/7主题的控件的话http://www.codeproject.com/Articles/18858/Fully-t

C#中用“橡皮条”法绘图和重绘

前些日子在论坛上发了个帖子,100分寻求"橡皮条"法绘图的代码.效果不是很好,于是自己参照网友给的代码重新写了一个,解决了绘图与重绘的问题.由于只写了部分,所以功能有限,同时可能算法不是很好,希望大家指点!!窗体中仅包含一个pictrueBox1,先将代码付诸于下:using System;using System.Drawing;using System.Collections;using System.ComponentModel;using System.Windows.Form