내 WinForm에는 일부 그리드가있는 패널, 그리드에도 스크롤 막대가 있습니다. 마우스 휠을 사용하여 각 그리드를 스크롤하고 Shift + 스크롤을 사용하여 패널을 스크롤하려고했습니다.패널의 마우스 휠 스크롤을 사용 또는 사용하지 않음
private void sitePnlGrid_MouseWheel(object sender, MouseEventArgs e)
{
if (Control.ModifierKeys == Keys.Shift)
this.sitePnlGrid.DisableScroll = false;
else
this.sitePnlGrid.DisableScroll = true;
}
그리고이 : 초기화에 this.sitePnlGrid.DisableScroll = false;
을 설정
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);
}
}
이 시도.
스크롤을 비활성화했지만 다시 활성화하지는 않습니다. 내 말은 : Shift + 스크롤을 먼저하면 스크롤이 패널에서 작동합니다. 스크롤 만하면 패널 스크롤을 사용할 수 없으므로 그리드를 스크롤 할 수 있습니다. 하지만 Shift + 스크롤을 다시하면 패널의 스크롤이 작동하지 않습니다.
패널 스크롤을 사용하지 않도록 설정하려면 어떻게해야합니까?