关于C#回车切换焦点实现的探讨

C#回车切换焦点实现的探讨,我们在学习 Windows程序中Tab键是默认的切换输入焦点的按键,但用回车键切换输入焦点更符合人们的输入习惯。Delphi、VB中这个问题比较容易解决,VC 中却很少有资料提到。通过反复尝试C#回车切换焦点的实现,我找到了一种方法,或许对大家有所帮助。

C#回车切换焦点实现1.

VC 中appwizard生成一个基于对话框的程序。切换resourseview状态,在对话框中插入一个编辑框,同时修改其styles属性,选中multiline 、want return两项。

C#回车切换焦点实现2.

①在classwizard中选add class增加一个新类,name定义为myedit,base class选择edit。其余采用默认选项。

②在新生成的my-edit类中加入wm-keydown的消息映射函数,加入如下代码。

oid Myedit::OnKeyDown(UINT nChar,   


UINT nRepCnt, UINT nFlags)   


 


{   



// TODO: Add your message handler code here and/or call default   



 



if (nChar= = VK_RETURN) //插入开始部分   



 


{   


 



CDialog* Pwnd=(CDialog*)GetParent() ;//取得对话框指针   



 



Pwnd->NextDlgCtrl( ); //切换到下一个输入焦点   



 


}   


 



//插入结束部分   



 


CEditView::OnKeyDown(nChar, nRepCnt, nFlags);   


 


}   

C#回车切换焦点实现3.

在classwizard中选择 member variables 选项,class name选择对话框类,control ids中选择编辑框的id号,然后选择add variable按扭。在对话框中 categary选择control, variable type 刚才定义的类myedit。

c#

相关推荐