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;
}

浙公网安备 33010602011771号