-KeyPress:
làm nhiệm vụ cho text box chỉ nhập ký tự mà bạn thiết lập trong sự kiện này.
- Validating
: kiểm tra xem có nhập dữ liệu theo bạn thiết lập
hay không (dùng trong trường hợp paste)
- TextChanged:
lọc bỏ ký tự mà bạn không muốn trong trường hợp Paste hoặc kết thúc thoát ra khỏi
Textbox
Code:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace Nhap_Ky_Tu_So
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
//Hàm làm nhiệm
vụ cho text box chỉ nhập ký tự số cho các textbox
private
void KeyPressNumber(object
sender, KeyPressEventArgs e)
{
char
keycode = e.KeyChar;
int
c = (int)keycode;
// Kiểm
tra ký tự vừa nhập vào có phải là các số nằm trong khoảng
// 0..9
hoặc ký tự "." hoặc "-" hoặc "Backspace"
if
((c >= 48) && (c <= 57) || (c == 45) || (c == 46) || (c == 8))
{
e.Handled = false;
}
else
{
e.Handled = true;
MessageBox.Show("Chỉ được nhập ký tự số", "Thông báo");
}
}
//Hàm này kiểm
tra xem có nhập dữ liệu có ký tự chữ hay không (dùng trong trường hợp paste)
private
void txt_Validating(object
sender, CancelEventArgs e)
{
//Nếu dữ
liệu trống
if
(((TextBox)sender).Text == "")
{
MessageBox.Show("Dữ liệu không được trống", "Lỗi nhập dữ liệu", MessageBoxButtons.OK, MessageBoxIcon.Warning);
((TextBox)sender).Text
= "0";
}
else
{
for
(int i = 0; i < ((TextBox)sender).Text.Length;
i++)
{
//int
c = (int)Convert.ToChar(((TextBox)sender).Text[i]);
//if
((c <= 48) && (c >= 57))
if
(!char.IsDigit(((TextBox)sender).Text[i])
&& ((TextBox)sender).Text[i] != '.' && ((TextBox)sender).Text[i]
!= '-')
{
((TextBox)sender).Text = "0";
MessageBox.Show("Không được nhập
ký tự chữ", "Lỗi nhập dữ liệu",
MessageBoxButtons.OK, MessageBoxIcon.Warning);
break;
}
}
}
}
//Hàm này để
lọc bỏ ký tự chữ khi paste cho các textbox
private
void txt_TextChanged(object
sender, EventArgs e)
{
//This
handles if they paste crap in the textbox since that doesn't fire the KeyDown
event
TextBox
tb = (sender as TextBox);
double
i;
if
(!string.IsNullOrEmpty(tb.Text) && !double.TryParse(tb.Text, out
i))
{
StringBuilder
sb = new StringBuilder();
for
(int i1 = 0; i1 < tb.Text.Length; i1++)
{
if
(char.IsNumber(tb.Text[i1]) || tb.Text[i1] == '.' || tb.Text[i1] == '-')
sb.Append(tb.Text[i1]);
}
tb.Text = sb.ToString();
}
}
//Thiết lập
khi mới chạy Form
private
void Form1_Load(object
sender, EventArgs e)
{
//Khi nhập
từng ký tự nếu là ký tự chữ thì thông báo lỗi
textBox1.KeyPress += new KeyPressEventHandler(KeyPressNumber);
//Khi kết
thúc thoát khỏi textbox thì kiểm tra lại có phải là chữ số không
textBox1.Validating += new CancelEventHandler(txt_Validating);
//Lọc khi
copy nếu có ký tự chữ thì loại bỏ
textBox1.TextChanged += new EventHandler(txt_TextChanged);
}
}
}
Mã nguồn chương trình bạn tải về ở đây.
Bài tiếp theo để kết hợp với bài này đó là Kiểm tra địa chỉ email của dịch vụ Yahoo có tồn tại hay không bằng C#
Giao diện chương trình khi chạy bạn nhập khác ký tự số
Mã nguồn chương trình bạn tải về ở đây.
Bài tiếp theo để kết hợp với bài này đó là Kiểm tra địa chỉ email của dịch vụ Yahoo có tồn tại hay không bằng C#
Hãy like nếu bài viết có ích →
Kết bạn với gisgpsrs trên Facebook
để nhận bài viết mới nóng hổi
:d, thanks so much! cảm ơn quan nhé!
Trả lờiXóamời quan sang blog của mình dạo 1 vòng :D
lovely dogs
úi blog gì sao toàn dogs vậy?
XóaCám ơn bài viết của bạn rất nhiều!
Trả lờiXóa