VB.Net - TextBox, chỉ cho phép sử dụng số

Hai ví dụ để hạn chế việc sử dụng các số chỉ trong một hộp văn bản, có tính đến bộ tách thập phân của PC chủ.

ví dụ 1

Cách "đơn giản" nhất để hạn chế nhập dữ liệu được trình bày dưới đây.

  • Mở một dự án Windows Forms mới
  • Trên biểu mẫu, dán:
    • Một hộp văn bản
    • Một nhãn
    • Một nut bâm

Và dán mã này vào ...

 Lớp công khai Form1 Dim Sep As Char Dim Nombre As Double Private Sub Nút1_Click (Người gửi ByVal là System.Object, ByVal e As System.EventArss) Xử lý Nút1.Click Nombre = CDbl (TextBox1.Text) Form1_Load (Người gửi ByVal là System.Object, ByVal e As System.EventArss) Xử lý MyBase.Load 'Détecter le sépar Nghiệp décimale de l'application. Sep = Application.CiverseCARM.NumberFormat.NumberDecimalSeparator TextBox1.F Focus () End Sub Private Sub TextBox1_KeyPress (ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArss) ) Hoặc e.KeyChar.Equals (Tháng chín) Hoặc Char.IsControl (e.KeyChar)) Sau đó e.Handled = True End Sub End Class 

Ví dụ 2

Phương thức được sử dụng trong ví dụ 1 thiếu tính linh hoạt. Thật vậy, việc sử dụng dấu thập phân phụ thuộc vào cấu hình của máy chủ PC.

Ưu điểm của giải pháp thứ hai này là người dùng có thể nhập điểm hoặc dấu phẩy và mã sẽ xử lý các thay đổi tùy thuộc vào cấu hình của PC.

Thêm một hình thức thứ hai với các thành phần tương tự.

Dán mã vào ...

 Biểu mẫu lớp công khai e As System.EventArss) Xử lý MyBase.Load 'Phát hiện dấu thập phân của ứng dụng. Sep = Application.CiverseCARM.NumberFormat.NumberDecimalSeparator End Sub Private Sub Data_KeyDown (ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArss) Xử lý dữ liệu.KeyDown If e Sub Data_TextChanged (ByVal sender As System.Object, ByVal e As System.EventArss) Xử lý Data.TextChanged If Data.Text = Sep Then 'Nếu dấu thập phân được gõ trực tiếp. Data.Text = "0" & ​​Sep Data.SelectionStart = Len (Data.Text) Else If Not IsNumeric (Trim (Data.Text)) Sau đó Beep () If Len (Data.Text) <1 Then Data.Text = "" Else Data.Text = Microsoft.VisualBasic.Left (Data.Text, Len (Data.Text) - 1) Data.SelectionStart = Len (Data.Text) End If End If End Sub Sub Đính () Dim DT As String 'Change Nó tương thích với cấu hình của PC chủ. DT = Thay thế (Data.Text, ".", Tháng chín) DT = Thay thế (DT, ", ", Tháng chín) Label1.Text = CDbl (DT) Khi xảy ra lỗi Tiếp tục dữ liệu tiếp theo.SelectionStart = 0 Data.SelectionLạng = Len (Dữ liệu .Text) Data.F Focus () End Sub End Class 

Tải về

  • Tải ví dụ tại đây

Bài TrướC TiếP Theo Bài ViếT

Lên Trên LờI Khuyên