【发布时间】:2015-02-05 08:38:10
【问题描述】:
在我的 WinForm 中有一个带有一些网格的面板,网格也有滚动条。我想使用鼠标滚轮滚动每个网格并使用 Shift+scroll 滚动面板。 试过这个:
private void sitePnlGrid_MouseWheel(object sender, MouseEventArgs e)
{
if (Control.ModifierKeys == Keys.Shift)
this.sitePnlGrid.DisableScroll = false;
else
this.sitePnlGrid.DisableScroll = true;
}
还有这个:
public class CustomScrollPanel : Panel
{
public bool DisableScroll { get; set; }
protected override void WndProc(ref Message m)
{
if (m.Msg == 0x20a && DisableScroll==true) return;
base.WndProc(ref m);
}
}
在初始化中设置this.sitePnlGrid.DisableScroll = false;。
这是禁用滚动但不启用它回来。我的意思是:如果我先执行 Shift+scroll,则可以在面板上滚动。只需滚动,它会禁用面板滚动,所以我可以滚动网格。但是如果我再次使用 Shift+scroll 则在面板中滚动将不起作用。
禁用后如何启用面板回滚?
【问题讨论】:
标签: c# winforms scroll mousewheel