[Publish 25/03/2017 - Carry by Tùng T.Tr][code language=”csharp”] private void Bai17RegisterSubject_FormClosing(object sender, FormClosingEventArgs e)
{
var r = MessageBox.Show(@"Do you really want to close this form?", @"Exit",
MessageBoxButtons.YesNo,
MessageBoxIcon.Question,
MessageBoxDefaultButton.Button2);
e.Cancel = (r == DialogResult.No);
}
private void Bai17RegisterSubject_Load(object sender, EventArgs e)
{
errorProvider1.Clear();
errorProvider2.Clear();
//btnDangKy.Enabled = false;
txtMSSV.Focus();
}
[/code]
#2 Sau đây là event cho Button
[code language=”csharp”] private void btnDangKy_Click(object sender, EventArgs e){
//Thông tin đã điền
string xuat= "Sinh viên: "+txtHovaTen.Text
+"\nMSSV: "+txtMSSV.Text
+"\nLớp: "+cboLop.SelectedItem
+"\nNiên khóa: "+cboNienKhoa.SelectedItem;
//Học kì đã đăng kí
foreach(RadioButton rad in palHocKy.Controls)
if(rad.Checked)
switch(rad.Text) //Ở phần text trong Properties ta đã gán tên là I,II,…
{
case "I": xuat += "\nĐã Đăng kí học kì 1"; break;
case "II": xuat += "\nĐã Đăng kí học kì 2"; break;
case "III": xuat += "\nĐã Đăng kí học kì 3"; break;
case "IV": xuat += "\nĐã Đăng kí học kì 4"; break;
}
//Môn học đã đăng kí
xuat += " các môn học sau:";
int i = 1;
foreach (object obj in cklMonHoc.CheckedItems)
xuat +="\n"+ i++ + ". " + obj;
//Xuat messagebox
MessageBox.Show(xuat);
}
private void btnHuy_Click(object sender, EventArgs e)
{
txtHovaTen.Clear();
txtMSSV.Clear();
cboNienKhoa.SelectedItem = cboLop.SelectedItem = null;
radI.Checked = true;
for(int i= 0;i< cklMonHoc.Items.Count;i++)
cklMonHoc.SetItemChecked(i,false);
}
private void btnThoat_Click(object sender, EventArgs e)
{ Close(); }
[/code]
#3 Và không thể thiếu Event cho TextBox
[code language=”csharp”] private void txtMSSV_TextChanged(object sender, EventArgs e){
Control ctr = (Control)sender;
if (ctr.Text.Length > 0 && !char.IsDigit(ctr.Text[ctr.Text.Length – 1]))
{
errorProvider1.SetError(ctr, "Mã Sinh Viên phải là số!!!");
btnDangKy.Enabled = false;
}
else
{
if (ctr.Text.Length == 0)
{
errorProvider1.SetError(ctr, "Mã Sinh Viên không được rỗng!!!");
btnDangKy.Enabled = false;
}
else
errorProvider1.Clear();
}
}
private void txtHovaTen_TextChanged(object sender, EventArgs e)
{
Control ctr = (Control)sender;
if (ctr.Text.Trim().Length > 0 && char.IsDigit(ctr.Text[ctr.Text.Length – 1]))
{
errorProvider1.SetError(ctr, "Tên Sinh Viên không hợp lệ!!!");
btnDangKy.Enabled = false;
}
else
{
if (ctr.Text.Trim().Length == 0)
{
errorProvider1.SetError(ctr, "Tên Sinh Viên không được rỗng!!!");
btnDangKy.Enabled = false;
}
else
errorProvider1.Clear();
}
}
[/code]
Lưu ý: Với code ở trên thì chúng ta đã xong nhưng khi xét tới sự đúng đắn khi nhập liệu thì sẽ gặp vấn đề là có khi dữ liệu nhập chưa đủ mà nút đăng kí vẫn hiện. Ta sẽ xử lí việc ẩn và hiện nút đăng kí.
[code language=”csharp”] if (txtHovaTen.Text.Trim().Length != 0&& txtMSSV.Text.Length != 0
&& cboNienKhoa.SelectedItem != null
&& cboLop.SelectedItem != null
&& palHocKy.Controls.Count != 0
&& cklMonHoc.SelectedItem != null)
{
btnDangKy.Enabled = true;
}
else
{
btnDangKy.Enabled = false;
}</pre>
<pre>[/code]
Với đoạn code trên cách bạn hãy cho vào các sự kiện Click (của TextBox); SelectedIndexChanged (của combobox); Paint (của FlowLayoutPanel) là được. Lí do không bỏ vào Button là mình đã cho nó ẩn ở Form_Load nên nó ẩn luôn rồi và trên hết là sự kiện của Button là Click => Nó ẩn rồi thì lấy đâu ra xảy ra kiểm duyệt khi Click. Các bạn cũng nhớ cho nút ẩn ở form load nha :V

