C#在Windows窗体中滚动面板
发布时间:2020-12-15 04:00:29 所属栏目:百科 来源:网络整理
导读:我使用的是VS2010,Windows 7 我有一个面板上有很多画框.它有 AutoScroll = true 滚动条可以正常拖动,或者点击它.但是,我想用滚轮和箭头键滚动它. 轮子根本没有响应(并且添加事件处理程序到窗体不起作用,因为当我改变焦点时停止触发),并使用箭头键,我必须编程
我使用的是VS2010,Windows 7
我有一个面板上有很多画框.它有 AutoScroll = true 滚动条可以正常拖动,或者点击它.但是,我想用滚轮和箭头键滚动它. 轮子根本没有响应(并且添加事件处理程序到窗体不起作用,因为当我改变焦点时停止触发),并使用箭头键,我必须编程滚动.我试过以下: panel3.VerticalScroll.Value = panel3.VerticalScroll.Maximum; 这不起作用,滚动条几乎没有移动.由于某种原因,最大值为100. 我试过的轮子问题(不工作): // Fires as long as i don't change focus to anything this.MouseWheel += new MouseEventHandler(Panel1_MouseWheel); private void Panel1_MouseWheel(object sender,MouseEventArgs e) { panel3.Focus(); } 谢谢. 解决方法
一对夫妇要尝试:
使您的Panel具有第一个TabIndex属性.那是: panel1.TabIndex = 0; 显然,表单上的其他控件应该被正确地重新索引. 另外,尝试在MouseDown事件中添加焦点: void panel1_MouseDown(object sender,MouseEventArgs e) { if (!panel1.Focused) panel1.Focus(); } 您也可以执行MouseEnter,但这可能是一个奇怪的用户界面,因为将鼠标移到面板上会将焦点从当前的主动控制中移除. 您不需要订阅MouseWheel事件.它应该自动移动滚动条. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |