比如现在 有4个控件 textbox1 textbox2 combobox button1 我想用enter键 将光标焦点依次下载移动 button1后回到 textbox1 应该怎么写呢?

解决方案 »

  1.   

    # textbox回车控件移动焦点
      有很多朋友问C#的TextBox控件怎么在按回车,焦点在控件中移动,其实TextBox增加了几个有意思属性。一个布尔值是AcceptsReturn属性的值,允许c# textbox回车接受为一个新行,或者激活窗体上的默认按钮。这个属性设置为true时,c# textbox回车文本框中创建一个新行使用c# textbox回车。CharactorCasing确定文本框中文本的大小写。CharactorCasing枚举包含3个值Lower、Normal和Upper。Lower会使所有的文本小写,Upper则把所有的文本转变为大写,Normal把文本显示为输入时的形式。PasswordChar属性用一个字符表示用户在文本框中输入文本时要显示给用户的内容,这通常用于输入密码和pin数字。c# textbox回车属性返回输入的文本,只有显示的内容会受这个属性的影响。 
    下面为大家介绍的是实现动态地中窗体中使用c# textbox回车让焦点在控件数组中移动的两种方法。 
    第一种方法: 
    C# code 复制代码private void Form1_Load(object sender, System.EventArgs e)
        {
           TextBox []txt = new TextBox[10];  
         for(int i=0;i <10;i++)  
         { 
             txt= new TextBox();  
            txt.Location = new System.Drawing.Point(8, 10+i*30);  
            txt.Size = new System.Drawing.Size(50, 21);    
          txt.TabIndex = i;   
           txt.KeyPress+=new KeyPressEventHandler(txt_KeyPress);  
            this.Controls.Add(txt);  
         } 

    private void txt_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e) 
       { 
    if(e.KeyChar==13)   
    {     SendKeys.Send("{TAB}");  
      }  
      } 
    第二种方法: 
    C# code 复制代码
    protected override bool ProcessDialogKey(Keys keyData)
      {    
      if ((ActiveControl is TextBox || ActiveControl is ComboBox) &&      
         keyData == Keys.Enter)  
        {    
          keyData = Keys.Tab;  
        }    
      return base.ProcessDialogKey(keyData); 
    }
    希望以上对大家有所帮助。 (http://www.7hzx.com/simple/?t903.html)