我在用VS2010 C#写winform程序时,我不想panel滚动条默认中健滚动,该怎么设置?

我在用VS2010C#写winform程序时,使用panel来放picturebox,当picturebox比panel大时,出现滚动条,在panel得到焦点时,滚动鼠标... 我在用VS2010 C#写winform程序时,使用panel来放picturebox,当picturebox比panel大时,出现滚动条,在panel得到焦点时,滚动鼠标滚轮,panel的竖直滚动条就会滚动,我不想竖直滚动条滚动应该怎么设置?
滚动属性禁了滚动条也没了
我只是想滚动条用滚轮时不滚动,滚动条还想保留,有办法吗?因为我滚轮滚动要作它用
展开
 我来答
enuosky
2012-11-13 · 超过29用户采纳过TA的回答
知道答主
回答量:66
采纳率:0%
帮助的人:77.6万
展开全部
新建一个usercontrol,usercontrol里放置你的panel和picturebox,实现IMessageFilter接口,这样应该就禁用了usercontrol的滚轮了,并且form里其他组件不受影响,代码如下:

public partial class UserControl1 : UserControl, IMessageFilter
{
public UserControl1()
{
InitializeComponent();
}
private void UserControl1_Load(object sender, EventArgs e)
{
Application.AddMessageFilter(this);
}

public bool PreFilterMessage(ref Message m)
{
if (m.Msg == 522)
{ return true; }
return false;
}

}
追问
试了下,的确是过滤掉滚轮事件了,学习了
不过在这个程序里我不是想完全屏蔽滚轮事件,只是想作它用,比如放大缩小图像,左右滚动图像等,panel这个控件好像一接收到滚轮事件就自动滚竖直滚动条了,我是想取消这个
追答
if (m.Msg == 522)
{
//试一下在这里写放大,缩小图像的代码
return true;
}
宇宙之心眼
2012-11-13 · TA获得超过623个赞
知道小有建树答主
回答量:610
采纳率:100%
帮助的人:397万
展开全部
那使用GDI双缓冲绘图
当滚动条滚动的时候执行一次重画
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
kazav
2012-11-12
知道答主
回答量:13
采纳率:100%
帮助的人:1.5万
展开全部
将panel的滚动属性禁掉就好了啊?我个人是用VSC++的,经常跟C#的语法混淆,具体的哪个属性我忘了,不过我知道是有这个属性的,可以直接设置的,你参照下SDK看看。

这个就没有直接属性了,你或者加段函数,将按下或使用滚轮时的按键返回为0。
追问
我在mouse_wheel事件里加入了
***.VerticalScroll.Value=0,想不让它动,可还是动,晃了一下再回到顶部,应该是在mouse_wheel事件之前VerticalScroll.Value就改变了
追答
分段运行调试下,看看该事件的响应顺序,一步步来,能找到问题的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式