如何使上下键不控制滚动条的滚动
- 提问者网友:疯孩纸
- 2021-07-18 15:21
- 五星知识达人网友:長槍戰八方
- 2021-07-18 16:42
我们都知道Winfrom中,在正常情况下,左右键并不能直接控制DataGridView的水平滚动条滚动,它只能控制选中单元的移动,但在有些情况下,我们需要通过左右键来实现一列一列的滚动,那么我们可以这样做:
在ProcessCmdKey的重载方法中写:
protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
#Y1N1d`2@V3{\0 {
j'[4Q@UY)QA }0 if (keyData == Keys.Left)ITPUB个人空间0bT H{K&z z9V#U-SV
{
wx0^JvtX ~;B0 if (this.HorizontalScrollingOffset > 0)
&k Lu,r JR4{x0 {ITPUB个人空间(hP [,~Tt.R+f"]'R
if (this.FirstDisplayedScrollingColumnHiddenWidth != 0)ITPUB个人空间Ht ^!?H/Q0~P0l
{ITPUB个人空间fB5~A*[^RH
this.HorizontalScrollingOffset -= this.FirstDisplayedScrollingColumnHiddenWidth;
,Ttl/G"|hh$z0 }
T [m8B t0 elseITPUB个人空间8mk_qN,L
{
qI/j*ek IaX0 this.HorizontalScrollingOffset -= 2;
&JO;o Fq0 this.HorizontalScrollingOffset -= this.FirstDisplayedScrollingColumnHiddenWidth;
9oZH GKT0 }ITPUB个人空间'Uc0A'Q;N2`n7Y
}ITPUB个人空间XR [!Gp;U vzU
return true;
(N P%M eA^q_0 }ITPUB个人空间(z4A0X?8R'_ z0u'X
else if (keyData == Keys.Right)
T DWccI|0 {ITPUB个人空间V5W"AR&y@3E
if (this.HorizontalScrollingOffset < this.HorizontalScrollBar.Maximum)
:hfhim4Qf} I s0 {ITPUB个人空间9m@oQCy6[J` a
this.HorizontalScrollingOffset += this.Columns[this.FirstDisplayedScrollingColumnIndex].Width - this.FirstDisplayedScrollingColumnHiddenWidth;
X'M;i4h+x?$y+V F1z6}0 }
O"NO uy9OGJh0 return true;
y3Z5z XE:z0 }ITPUB个人空间bP@ u6E _
T_9AB8n0ITPUB个人空间Yp3Y7P)?
return base.ProcessCmdKey(ref msg, keyData);
|L3M}y&\o0 }
.dKX(x w6u0
- 1楼网友:廢物販賣機
- 2021-07-18 19:43
- 2楼网友:孤老序
- 2021-07-18 19:22
- 3楼网友:洒脱疯子
- 2021-07-18 18:34
- 4楼网友:持酒劝斜阳
- 2021-07-18 17:22
有最简单的方法:说白话点就是先点一下--<控制范围>--以外的区域,再使用
- 5楼网友:平生事
- 2021-07-18 16:58