自定义控件的滚动条事件问题(Winform)

金汐 2010-05-24 12:13:52
我需要做一个自定义用户控件.控件的顶端是一个panel,里面放了一个滚动条.暂且称作顶面板吧.下面也是一个panel,暂称作内容面板吧.里面放的是textbox,datetimepicker这些控件.内容面板中的控件是动态加载的.它们的总宽度经常会超出内容面板的宽度.而面板的宽度是需要固定住的.我希望做到鼠标拉动顶部面板的滚动条,做到相当于拉动内容面板的滚动条一样的效果.为什么我不直接用内容面板的滚动条呢,我实在没找到哪里可以设置内容面板的滚动条的高度,位置等样式.
我只好自己加一个滚动条,设置好我需要的样式.希望拖动自己加的滚动条可以触发内容面板的滚动事件.
代码中我这样写的.但编译器会说panel的OnScroll方法是保护成员.无法访问.
//条件组上方滚动条事件
private void this_hscroll(object sender,ScrollEventArgs e)
{
this.palMain.OnScroll(e);

}

请问该怎么做到我期望的效果呢?
...全文
298 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
爱睡觉的猫 2010-09-14
  • 打赏
  • 举报
回复
同样问题啊
wjq 2010-05-24
  • 打赏
  • 举报
回复
弱弱的问下……你为啥要设置滚动条的高度……默认高度不是正好么~外加你加的滚动条控件貌似也不能改样式诶~?
金汐 2010-05-24
  • 打赏
  • 举报
回复
不会在这里贴图,要不然你一看我做的控件运行起来的样子就马上明白为啥我不想要默认的了.
金汐 2010-05-24
  • 打赏
  • 举报
回复
默认的滚动条太粗了.我要细细的滚动条.那样好看点.我做的这个控件是根据LISTVIEW中的所有列生成对应查询条件组.列多了的时候就需要滚动条,页这个控件是放在LISTVIEW上面的,默认的滚动条比较粗,而且是在底部,这样看起来就比较难看.我想做的就是把滚动条放在顶端.

一开始我想通过顶部的滚动条触发内容面板的滚动事件.发现面板的滚动事件是保护级别,不能用.我就写了个类继承panel的父类(滚动事件在那个父类里),写了个新的滚动事件覆盖继续的事件,在里面调用父类的事件.本以为这样可以触发面板自身的滚动事件就可以了呢.结果发现面板中内容还是不动,必需通过鼠标直接拖面板自身的滚动条才行...事件不怎么懂.工作需要这几天天天弄,烦死了.
后来问题我总算想到办法解决了.我直接在顶端的滚动条的滚动事件中控制内容面板的位置移动.刚开始不知道怎么控制滚动条滚动的幅度和位移的比例.后来拿面板默认的滚动条来试,找出了默认滚动条的设置.我照着设就行了.

8,834

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 组件/控件开发
社区管理员
  • 组件/控件开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧