gpt4 book ai didi

C# 在 Windows 窗体中滚动面板

转载 作者:太空狗 更新时间:2023-10-29 17:42:23 24 4
gpt4 key购买 nike

我使用的是 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 事件。它应该会自动移动滚动条。

关于C# 在 Windows 窗体中滚动面板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8624737/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com