WoF*_*gel 9 c# scroll panel winforms
我正在使用VS2010,Windows 7
我有一个有很多图片框的面板.它有
AutoScroll = true
Run Code Online (Sandbox Code Playgroud)
当我拖动滚动条或单击它时滚动条正常工作.但是,我想用滚轮和方向键滚动它.
轮子根本没有响应(并且向表单添加事件处理程序不起作用,因为当我改变焦点时停止触发),并且使用箭头键我必须以编程方式滚动.我尝试了以下方法:
panel3.VerticalScroll.Value = panel3.VerticalScroll.Maximum;
Run Code Online (Sandbox Code Playgroud)
这不起作用,滚动条几乎没有移动.由于某种原因,最大值总是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();
}
Run Code Online (Sandbox Code Playgroud)
谢谢.
Lar*_*ech 11
有几件事要尝试:
让你Panel
有第一个TabIndex
属性.那是:
panel1.TabIndex = 0;
Run Code Online (Sandbox Code Playgroud)
显然,应该正确地重新索引表单上的其他控件.
另外,尝试在MouseDown事件中添加焦点:
void panel1_MouseDown(object sender, MouseEventArgs e) {
if (!panel1.Focused)
panel1.Focus();
}
Run Code Online (Sandbox Code Playgroud)
您也可以使用MouseEnter,但这可能是一个奇怪的用户界面,因为将鼠标移到面板上会使焦点远离当前的活动控件.
您不需要订阅MouseWheel事件.它应该自动移动滚动条.
归档时间: |
|
查看次数: |
39335 次 |
最近记录: |