winform关于回车换成tab的问题

问题:

重写ProcessCmdKey方法:
protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
{
switch (keyData)
{
case Keys.Enter://发送tab
SendKeys.Send("{tab}");
break;
}
return base.ProcessCmdKey (ref msg, keyData);
}

现在我在多行文本框里想加个回车,换行是换行了,可都跳到下一个焦点去了,怎么不让焦点到下一个控件??

回答:

1、你判断一下不就行了嘛。

switch (keyData)
{
case Keys.Enter://发送tab
                       if(!this.Multiline)//如果是单行文本才发送
   SendKeys.Send("{tab}");
break;
}

2、若是把回车换成TAB则可以这样
protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
{
  if keyData = Keys.Enter//发送tab
  {
    SendKeys.Send("{tab}");
    return true
  }
  return base.ProcessCmdKey (ref msg, keyData);
}


3、楼上的,准确来说,你那不叫转换

if(m.Msg == WM_KEYDOWN&& keyCode == Keys.Enter )
{
m.WParam=(IntPtr)Keys.Tab
}
return base.ProcessKeyPreview(ref m);
这才叫转换。。。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值