C#实现WinForm自定义滚动条(转载)

转载自http://www.csharpwin.com/csharpspace/9147r7954.shtml

先来点直观的效果图:

1.制作自定义滚动条,参考http://www.codeproject.com/KB/miscctrl/customscrollbar.aspx

2.用自定义的滚动条遮住datagridview将要显示的滚动条。

3.鼠标控制自定义滚动条。

///<summary>   

/// 自定义滚动条滚动事件
///</summary>
///<param name="sender"></param>
///<param name="m"></param>
private void customScrollbar1_Scroll(object sender, EventArgs m)
{
//算出每一格的高度
int int_Hegiht = dgAll.Size.Height / 7;
int index = 0;
//datagriview将要显示的条数
index = customScrollbar1.Value / int_Hegiht;
if (index + 7 + 1 == dgAll.Rows.Count)
{
index = index + 1;
}
dgAll.FirstDisplayedScrollingRowIndex = index; //设置第一行显示
}

///<summary>
/// dgAll滚动条事件
///</summary>
///<param name="sender"></param>
///<param name="e"></param>
private void dgAll_Scroll(object sender, ScrollEventArgs e)
{
int intHeight = dgAll.Size.Height / 7;
customScrollbar1.Value = dgAll.FirstDisplayedScrollingRowIndex * intHeight;
}
posted @ 2014-01-16 15:30  苏苏zhao  阅读(4094)  评论(0)    收藏  举报