2012-04-11 37 views
18

Tôi đã sử dụng một hộp văn bản trong ứng dụng cửa sổ của mình. Nó chỉ cho phép bảng chữ cái và chữ số. Tôi muốn khi nào tôi gõ bất kỳ bảng chữ cái nào, nó sẽ được chuyển thành chữ hoa. Làm thế nào tôi có thể làm điều đó và trong sự kiện nào? Tôi đã sử dụng str.ToUpper() nhưng con trỏ đang dịch chuyển đến đầu chuỗi. Xin vui lòng cho tôi giải pháp.Làm thế nào để chuyển đổi chuỗi thành chữ hoa trong hộp văn bản cửa sổ?

Trả lời

52

Bạn chỉ cần thay đổi CharacterChasing bất động sản đến Upper.

textBox1.CharacterCasing = CharacterCasing.Upper 
+2

+1, nó phù hợp hơn. – ABH

+1

@Ferhad cảm ơn rất nhiều. – Sukanya

7

Bạn cần phải gán kết quả ToUpper trở lại hộp:

txtBox.Text = txtBox.Text.ToUpper(); 

Ngoài ra, thiết lập các CharacterCasing tài sản của textbox để Upper:

txtBox.CharacterCasing = CharacterCasing.Upper; 
+0

không, làm như vậy trong bấm phím hoặc sự kiện KeyDown hoặc KeyUp chuyển con trỏ ở vị trí zero trong hộp văn bản như tôi đã đề cập trong câu hỏi của tôi. – Sukanya

+0

@Sukanya - Thật vậy. Đó là lý do tại sao bạn không nên làm điều đó trên các trình xử lý sự kiện đó.Bạn có thể làm điều này trên trình xử lý sự kiện 'LostFocus', nhưng cần phải cẩn thận, nhưng một giải pháp tốt hơn là chỉ cần thiết lập thuộc tính' CharacterCasing'. – Oded

2

Cố gắng sử dụng sự kiện KeyPress và trình xử lý phải tương tự như sau;

private void textBox1_KeyPress(object sender, KeyPressEventArgs e) 
     { 
      e.KeyChar= (e.KeyChar.ToString()).ToUpper().ToCharArray()[0]; 
     } 
0

Có thể bạn nên sử dụng sự kiện: TextBox1_EditValueChanging.

Nếu mỗi lần con trỏ di chuyển ở vị trí đầu tiên, bạn có thể tính toán số ký tự trong txt của bạn và dịch chuyển con trỏ sau thẻ cuối cùng.

0
private void mytextbox_KeyPress(object sender, KeyPressEventArgs e) 

{ 

e.KeyChar = Char.ToUpper(e.KeyChar); 

} 
+0

chỉ đọc. – Tommix

1

Trong thuộc tính của TextBox chỉ cần đặt CharacterCasing Upper. Nó sẽ chuyển đổi tất cả ký tự được nhập bằng chữ hoa.

0
  1. TxtInput // Đây là đầu vào người sử dụng textbox
  2. LblLengthstrong // Label để hiển thị chiều dài
  3. LblUpper // Label cho thấy nó trong hoa
  4. LblLower // Label cho thấy nó trong chữ thường
  5. LblRight // Label cho thấy cho thấy 3 ký tự cuối cùng
  6. LblSubscript // Label cho thấy ký tự từ 1 đến 3

// chương trình chiều dài của tất cả các nhân vật inputed

private void BtnLength_Click(object sender, EventArgs e) 
     { 
      LblLength.Text = TxtInput.Text.Length.ToString(); 
     } 

// làm cho các nhân vật trên

private void btnUpper_Click(object sender, EventArgs e) 
     { 
      LblUpper.Text = TxtInput.Text.ToUpper(); 
     } 

// làm cho nhân vật thành chữ thường

private void BtnLower_Click(object sender, EventArgs e) 
     { 
      LblLower.Text = TxtInput.Text.ToLower(); 
     } 

// hiển thị 3 ký tự cuối cùng

private void BtnRight_Click(object sender, EventArgs e) 
     { 
      LblRight.Text = TxtInput.Text.Substring(TxtInput.Text.Length - 3); 
     } 

ký tự // chương trình ở vị trí từ 1 đến 3

private void BtnSubscript_Click(object sender, EventArgs e) 
     { 
      LblSubscript.Text = TxtInput.Text.Substring(1, 3); 
     } 

// ASCII

private void BtnGo_Click(object sender, EventArgs e) 
     { 
      string name; 
      int letter; 

      name = TxtInput.Text; 

      for (int index = 0; index < name.Length; index++) 
      { 
       letter = name[index]; 
       MessageBox.Show(letter.ToString()); 
      } 
     } 

// Mật khẩu

 int InNumTry = 0; 
    private void BtnGo_Click_1(object sender, EventArgs e) 
    { 
     string password; 
     password = TxtIn.Text; 

      switch (password) 
      { 
       case " ": MessageBox.Show("Passowrd is empty."); 
        break; 

       case "MIKE": MessageBox.Show("Password is OK!"); 
        FrmBOO newForm = new FrmBOO(); 
        newForm.Show(); 
        break; 

       default: 
        InNumTry++; 
        MessageBox.Show("Invalid Passwrod, try again!"); 
        TxtIn.Text = ""; 
        TxtIn.Focus(); 
        break; 
      } 

      if (InNumTry >= 3) 
      { 
       MessageBox.Show("You have tried too many times, have a good day."); 
       TxtIn.Enabled = false; 
      } 
     } 

// Thêm bộ hẹn giờ (Trong bộ hẹn giờ, thêm mã dưới đây (Thêm bộ định thời thêm1.Start(); ở dạng bắt đầu)

private void timer1_Tick(object sender, EventArgs e) 
     { 
      DateTime datetime = DateTime.Now; 
      this.LblTime.Text = datetime.ToString(); 
     } 
+3

Phản hồi quá dài và có thể gây nhầm lẫn cho người yêu cầu. Câu hỏi thực sự rõ ràng và chỉ yêu cầu sự kiện để xử lý. – innoSPG

+1

Những người lười biếng thậm chí không đọc qua nó. – C4u

0

Bấm chuột phải vào hộp văn bản trong trình thiết kế, trong thuộc tính thay đổi CharacterCasing to Upper.

7

Tại sao để phát minh lại bánh xe, chỉ cần đặt thuộc tính 'CharacterCasing' của textBox thành 'Upper'. Bạn không cần phải viết bất kỳ mã nào.

Make letters in textBox uppercase

Trong trường hợp hộp đeo mặt nạ, bạn có thể sử dụng '>' (trong tài sản mask) để làm cho ký tự sau chữ hoa. ví dụ. Đối với chuỗi ký tự chữ và số đầu vào (A-Z, 0-9) chiều dài tám, sử dụng mặt nạ '> AAAAAAAA'. Để giới hạn chỉ chữ cái (A-Z), hãy sử dụng '> LLLLLLLL'.

Make letters in maskedTextBox uppercase

+0

Đây là cách tốt nhất ... CHEEERS !!! –

+0

Đây phải là câu trả lời được chấp nhận! – henrikmerlander

+0

Nó phải là câu trả lời tốt nhất! – Jim

Các vấn đề liên quan