永发信息网

如何使上下键不控制滚动条的滚动

答案:6  悬赏:80  手机版
解决时间 2021-07-19 12:34
  • 提问者网友:疯孩纸
  • 2021-07-18 15:21
留下QQ号请
最佳答案
  • 五星知识达人网友:長槍戰八方
  • 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
按scroll lock
  • 2楼网友:孤老序
  • 2021-07-18 19:22
scroll lock 键~~
  • 3楼网友:洒脱疯子
  • 2021-07-18 18:34
打烂键盘的上下键呗
  • 4楼网友:持酒劝斜阳
  • 2021-07-18 17:22

有最简单的方法:说白话点就是先点一下--<控制范围>--以外的区域,再使用

  • 5楼网友:平生事
  • 2021-07-18 16:58
按scroll lock
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯