Bài viết mới nhất


Chào các bạn!
Hôm nay mình xin giới thiệu với các bạn một Control thông dụng của lập trình Winform C#, đó là Textbox


GIỚI THIỆU




Chức năng chính: Textbox chủ yếu là để nhập dữ liệu đầu vào, ngoài ra còn có thể dùng để xuất dữ liệu. Các ô tài khoản mật khẩu trên mạng xã hội, các ô nhập thông tin trong phần mềm, các ô lưu tên cho highscore khi chơi game, chúng ta có thể thấy textbox ở khắp mọi ứng dụng hiện nay.
Chúng ta hãy cùng xem có thể làm gì với một textbox nhé


THUỘC TÍNH CỦA TEXTBOX

Cũng giống như ButtonLabel, Textbox cũng có những thuộc tính gần giống với thuộc tính của 2 control mà ta đã được học qua. Dưới đây là bảng những thuộc tính thông dụng nhất của textbox:
Các thuộc tính cơ bản của Textbox

Tương tự như các đối tượng trước ta cũng có thể thay đổi thuộc tính của Textbox thông qua code.
VD:
//Lấy dữ liệu từ textbox
string var;
var = txtBox1.Text;

//Thay đổi thuộc tính
Texbox1.text = "abc"; Textbox1.Enabled = true;...

  • Chức năng AutoComplete của Textbox: Các ban tham khảo bài viết của mình tại đây

  • Thay đổi chiều cao (Height) của Textbox: Ta có nhiều cách để làm việc này. 
  - Thiết lập thuộc tính Multiline cho textbox thành true, bây giờ Textbox sẽ gõ được nhiều dòng (xuống dòng bằng phím Enter) và kèm theo đó ta có thể thay đổi kích thước Width, Height của Textbox tùy ý trên giao diện Form
  - Thiết lập Font Size của Textbox to lên
  - Thiết lập thuộc tính MinimumSize của Textbox
  - Thay đổi trong Form.Designer.cs với các thuộc tính sau:
this.textBox2.AutoSize = false;

//Sau đó thiết đặt Size bất kì mà bạn muốn

this.textBox2.Size = new System.Drawing.Size(142, 27);

SỰ KIỆN CỦA TEXTBOX

 

Cũng giống như button, để thêm sự kiện cho texbox thì chỉ cẩn nháy đúp chuột vào tên sự kiện cần thêm vào là xong!Một số sự kiện thường dùng:- TextChanged: sự kiện xẩy ra khi chữ trong textbox thay đổi- KeyUp: sự kiện khi đang gõ chữ trong textbox (bắt đầu ấn nút). Ứng dụng rất lơn. VD: khi ấn Enter thì chuyển chữ trong textbox vào một biến chẳng hạn- Ngoài ra còn có KeyDown, KeyPress,..cũng có chức năng gần tương tự...- MouseHover, MouseLeave tương tự phần button


Ở đây mình hướng dẫn các bạn 1 số chi tiết nhỏ như:
 -  Thêm dòng mới vào Texbox:
textBox1.Text += "your text" + "\r\n";

//hoặc
 
textBox1.Text += "your text" + Environment.NewLine;

- Lấy giá trị kiểu số (integer, float,..) từ Textbox: Ta dùng phương thức Parse:
int i;
i = int.Parse (textBox1.Text);

//hoặc

float  i;
i = float.Parse (textBox1.Text);
 
Trên là những gì cơ bản về Textbox, các bạn nào muốn tìm hiểu thêm có thể truy cập MSDN để tìm hiểu thêm nhé :D
Như thường lệ là một số đoạn code để các bạn đoán kết quả nhé:

private void txtBox1_KeyDown(object sender, KeysEventArgs e)
{
         if(e.KeyCode = Keys.Enter)
         {
         MessageBox.Show("Đang đăng nhập!");
         }
         if(e.KeyCode == Keys.CapsLock)
         {
          MessageBox.Show("Kiểm tra lại CapsLock");
         }
}



private void txtBox1_TextChanged(object sender, EventArgs e)
{
          lbl1.Text = txtBox1.Text;
}

Và đặc biệt với em này :v
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 WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        private void textBox1_TextChanged(object sender, EventArgs e)
        {
            if (System.Text.RegularExpressions.Regex.IsMatch(textBox1.Text, "  ^ [0-9]"))
            {
                textBox1.Text = "";
            }
        }
        private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (!char.IsControl(e.KeyChar) && !char.IsDigit(e.KeyChar) && (e.KeyChar != '.'))
            {
                e.Handled = true;
            }
        }
    }
}

TỔNG KẾT
Textbox cung cấp cho người dùng một công cụ đắc lực để nhập vào từ bàn phím hoặc các thiết bị input khác. Hầu hết các chương trình hiện nay từ phần mềm tới game đều sử dụng textbox vào nhiều mục đích khác nhau

Chào các bạn, chúc các bạn học tốt. Bài sau mình sẽ đưa các bạn đến với project nho nhỏ đâu tiên nhé :D


Chào các bạn!

Hôm nay lười quá nên mình sẽ viết một bài ngắn về một đối tượng cơ bản và đơn giản của C# Windows form. Đó là Label.


GIỚI THIỆU

Lớp Label được định nghĩa trong namespace System.Windows.Forms. Label là thành phần đơn giản nhất và cũng là một trong những thành phần quan trọng nhất và thường xuyên được sử dụng nhất trong lập trình Winform. Đối tượng nhãn (Label) chỉ để dùng trình bày một chuổi văn bản thông thường nhằm mục đính mô tả thêm thông tin cho các đối tượng khác. Ta cũng có thể dùng Label để làm công cụ đưa kết quả ra màn hình dưới dạng một chuỗi. 

 THUỘC TÍNH CỦA LABEL

Khởi tạo Label: Click vào Label trong thanh ToolBox và kéo nó vào chỗ mình muốn trên form

Cũng như Button, Label cũng có các thuộc tính cơ bản như: Name, Text, BackColor, ForeColor, và nhiều thuộc tính khác để điều chỉnh kích thước và tọa độ, mình sẽ không trình bày lại…
Mình sẽ nói về thuộc tính thường dùng của Label là Border Style, đại loại là thiết kế khung viền cho đẹp đó mà. Có ba kiểu Border Style (None, Fixed Single, Fixed3D) Kết quả như dưới:

SỰ KIỆN CỦA LABEL

Ta ít hay dùng sự kiện trên Label, vì nó chỉ đa phần để in thông tin ra form thôi nên các bài sau có dịp mình sẽ đi sâu vào hơn ở phần này. Các bạn muốn tìm hiểu thêm có thể truy cập MSDN nhé :D

Rồi, cuối cùng là các đoạn code mẫu mình demo cho các bạn đoán kết quả khi chạy của nó nhé :D

private void btnXanh_Click(object sender, System.EventArgs e)
{
    this.BackColor = Color.Blue;
 
    string msg = "";
    msg = msg + "Màu nền form: " + this.BackColor.ToString()+"\n";
    msg = msg + "Button click: " + btnXanh.Text;
    lblMsg.Text = msg;
}



private void btnDo_Click(object sender, System.EventArgs e)
{
     this.BackColor = Color.Red;
 
     string msg = "";
     msg = msg + "Màu nền form: " + this.BackColor.ToString()+"\n";
     msg = msg + "Button click: " + btnDo.Text;
     lblMsg.Text = msg;
}
 
 
 
private void btnMacDinh_Click(object sender, System.EventArgs e)
{
     this.BackColor = Color.Empty;
 
     string msg = "";
                 
     msg = msg + "Màu nền form: " + this.BackColor.ToString()+"\n";
     msg = msg + "Button click: " + btnMacDinh.Text;
     lblMsg.Text = msg;
}


Chúc các bạn học tốt và hẹn gặp lại!



Chào các bạn!

Hôm nay mình xin giới thiệu với các bạn một đối tượng phổ biến khác trong lập trình Winform với C# - đó là MessageBox.


GIỚI THIỆU

Chắc hẳn MessageBox đã quá quen thuộc với chúng ta khi sử dụng hệ điều hành Windows, nó được dùng để hiển thị ra các thông báo đến người sử dụng. Ngôn ngữ C# và nền tảng .NET Framework đã hỗ trợ rất nhiều trong việc sử dụng MessageBox.

MessageBox là một lớp (class) nằm trong System.Windows.Forms có một phương thức Show để hiển thị thông báo. Có rất nhiều kiểu thông báo, bạn có thể điều chỉnh nội dung thông báo, tiêu đề, các nút OK-Cancel, biểu tượng, v.v...

Trong từng trường hợp, các MessageBox sẽ có cách sử dụng khác nhau:
  •  Thông báo cho người sử dụng biết không thể sử dụng chức năng hay lưu ý một vấn đề trong chương trình
  •  Cần sự xác nhận của người sử dụng đối với một lệnh quan trọng như: Xóa một dữ kiện quan trọng, thoát nhưng chưa lưu trữ, tắt một lúc nhiều ứng dụng,…
Lý thuyết bao nhiêu đây đủ rồi, ta đi đến phần hướng dẫn sử dụng nhé :D


THIẾT LẬP CHO MESSAGEBOX

Ta xét đoạn code sau:
MessageBox.Show("Cùng học lập trình với IceTea Việt");
Và kết quả: Đây là kiểu thông báo đơn giản nhất, chỉ có nội dung và nút OK, chưa bao gồm biểu tượng, tiêu đề, v.v..


TIÊU ĐỀ CỦA MESSAGEBOX
Để có tiêu đề ta thêm 1 tham số chuỗi truyền vào phương thức như sau:
MessageBox.Show("Xin chào! Tôi là C#","Thông báo");

CÁC BUTTON TRÊN MESSAGEBOX
Như các bạn thấy, mặc định MessageBox của chúng ta sẽ có nút bấm là OK. Để cài đặt tùy chọn nút bấm, ta cũng thêm 1 tham số kiểu enum là:
MessageBoxButtons.<loại nút> 
Các loại nút có sẵn bao gồm AbortRetryIgnore, OK, OKCancel, RetryCancel,YesNo, YesNoCancel.
Ví dụ:

MessageBox.Show("Xin chào! Tôi là C#", "Thông báo", MessageBoxButtons.AbortRetryIgnore);

Để xử lý các sự kiện khi nhấn vào các nút này mình sẽ hướng dẫn bên dưới sau.

ICON CỦA MESSAGEBOX
Để thêm vào icon ta thêm tham số kiểu enum 
MessageBoxIcon.<loại icon>
Có nhiều loại nhưng phổ biến là Warning (tam giác vàng có dấu chấm than), Error (hình tròn đỏ có chữ X), Information (hình tròn xanh lam có chữ i), Question (hình tròn lam có dấu chấm hỏi).
Ví dụ:
MessageBox.Show("Bạn có thích lập trình không?", "IceTea Việt", MessageBoxButtons.YesNoCancel,MessageBoxIcon.Question);
Kết quả:
Còn rất nhiều tùy chọn khác (Default button, options, Help button, using the specified Help file, HelpNavigator, Help topic) các bạn có thể tự khám phá trên MSDN.
Còn bây giờ mình sẽ hướng dẫn các bạn xử lý sự kiện khi click vào một button trên MessageBox.
XỬ LÝ SỰ KIỆN TRÊN MESSAGEBOX
Để xử lý sự kiện trên MessageBox ta cần dùng một biến để lưu giá trị trả về của phương thức MessageBox.Show(). Biến đó có kiểu là DialogResult.
DialogResult dlr = MessageBox.Show("Bạn có thích lập trình không?", "IceTea Việt", MessageBoxButtons.YesNoCancel,MessageBoxIcon.Question);

Đến lúc này ta chỉ cần xét giá trị của biến dlr để xét điều kiện rẽ nhánh và xuất ra thứ mình muốn thôi. 
Lưu ý, giá trị của MessageBox là các giá trị nằm trong DialogResult Enumeration. Nên sẽ được gọi ra như (DialogResult.Yes, DialogResult.Abort,…)
if (dlr == DialogResult.Yes)
{
     MessageBox.Show("Hãy truy cập blog IceTea Việt để học nhiều bài học hay và thú vị nhé!");
}
else
     MessageBox.Show("Hãy truy cập blog IceTea Việt, biết đâu bạn sẽ có hứng thú với lập trình :D");

Và kết quả sau khi chọn Yes

Với những giới thiệu sơ lược trên, chắc hẳn các bạn đã có thể nắm được cách sử dụng cơ bản về MessageBox trong Windows Form.

MẸO NHỎ
Các bạn có thể viết nhanh phương thức MessageBox.Show bằng cách gõ mbox sau đó tab để nó hoàn chỉnh thành MessageBox.Show(“Test”); sau đó chỉ cần thay đổi dòng Test thôi :D

Như thường lệ mình cũng có một số đoạn code sau để cho các bạn dự đoán kết quả của nó khi chạy nhé :D
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
     DialogResult dlr = MessageBox.Show("Bạn muốn thoát chương trình?", "Thông báo", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
     if (dlr == DialogResult.No) e.Cancel = true;
}
Và đoạn code thứ 2
private void button1_Click(object sender, EventArgs e)
{
     DialogResult dlr = MessageBox.Show("Chọn Yes No?", "Thông báo", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
     if (dlr == DialogResult.Yes)
       {
           Application.Exit();
       }
}

TỔNG KẾT

MessageBox là đối tượng dùng để xuất thông báo ra màn hình hoặc lấy hiệu lệnh từ người dùng một cách hiệu quả nhất. Nó luôn xuất hiện trong những ứng dụng từ nhỏ đến lớn. Người lập trình có thể tùy chỉnh phối hợp các thuộc tính của MessageBox để tạo ra những hộp thoại phù hợp cho mục đích sử dụng

Chào các bạn, chúc các bạn học tốt và hẹn gặp lại vào bài sau :D




Chào các bạn!

Hôm nay mình xin giới thiêu với các bạn đối tượng đầu tiên và cơ bản nhất của C# Winform, đó chính là Button.


GIỚI THIỆU

Button là một Control, đó là một thành phần tương tác cho phép người dùng giao tiếp với một ứng dụng. Các lớp Button kế thừa trực tiếp từ lớp ButtonBase

Một button có thể được bấm bằng cách sử dụng chuột, phím ENTER, hoặc SPACEBAR nếu button đó đang được Focus.



Theo Button MSDN thì Button có rất nhiều thuộc tính và phương thức, chúng ta sẽ tìm hiểu những thứ cơ bản nhất:
MẸO: Đầu tiên khi code người ta thường đặt tên Button bắt đầu bằng btn hoặc bt. Để tiện việc xem code của người khác. Những thứ tiếp theo về Button gồm có

THUỘC TÍNH CỦA BUTTON

Ý nghĩa một số thuộc tính quan trọng của Button

Ta cũng có thể thay đổi thuộc tính của Button bằng code:
Vd: Thay đổi nội dung hiển thị trên Button có Name là button1 :
 button1.Text = "New text";
Hoặc nếu muốn sử dụng ảnh thay vì Text để load lên Button thì các bạn có thể:
 button1.Image = Image.FromFile("C:\\IceTeaViet.jpg");
Muốn thay đổi màu nền của Button thì các bạn có thể:
 button1.BackColor = Color.Green; //Màu sắc nằm trong Class Color


SỰ KIỆN CỦA BUTTON

Để thêm sự kiện Button ta đúp chuột vào nó, hoặc đúp chuột vào sự kiện cần thêm như hình:
Các sự kiện của Button

Trong các sự kiện của Button thì chỉ có sự kiện "Click chuột" là quan trong nhất. Do đó, trong phần này ta cũng chỉ đi tìm hiểu sự kiện MouseClick
- Cách tạo: Sự kiện Click chuột là sự kiện mặc định của Button, do đó, bạn chỉ cần double click chuột vào button cần tạo sự kiện là VS .Net sẽ mở cửa sổ Source code ra và tự động generate một hàm xử lý sự kiện click chuột cho bạn.

private void button1_Click(object sender, System.EventArgs e)
{
   //Bạn sẽ đánh code cho phần xử lý sự kiện ở đây.
}

Với button1_Click thì button1 chính là tên của control button mà bạn tạo sự kiện Click chuột cho nó.

TỔNG KẾT

Rồi bây giờ chúng ta sẽ kết hợp cả bài học ngày nay nhé: Các bạn tạo một project mới, kéo thả Button vào form. Mình quên nói Button nằm trong khung Common Control


  - Đặt trên cho Button là btnTest.
  - Tiếp tục đúp chuột vào Button để tạo sự kiện Click. Và hoàn thành code theo mẫu

private void btnTest_Click(object sender, System.EventArgs e) 
{ 
   btn.Text = "Đổi chữ"; 
   btn.BackColor = Color.Blue; 
   MessageBox.Show("Đã đổi xong"); //Đối tượng MessageBox mình sẽ giới thiệu rõ hơn vào các bài sau 
}

Khi này kết quả sẽ là:


Bài ngày hôm nay cơ bản vậy là ổn rồi, ai muốn làm thêm có thể tham khảo đoạn code sau của mình và đoán xem kết quả thế nào nhé :D 

private void btnXanh_Click(object sender, System.EventArgs e)
{
   this.BackColor = Color.Blue;
}

private void btnDo_Click(object sender, System.EventArgs e)
{
   this.BackColor = Color.Red;
}

private void btnMacDinh_Click(object sender, System.EventArgs e)
{
   this.BackColor = Color.Empty;
}

Chúc các bạn học tốt, hẹn gặp lại vào bài sau!




GIỚI THIỆU


Chào các bạn!
Hôm nay mình xin nói sơ qua về C# - Winform và các file trong Solution khi khởi tạo một solution. Các bạn mở Solution Explorer sẽ thấy có các thông tin chính:



PROPERTIES
Gồm có 3 mục:
 - AssemblyInfo.cs: Cái này lưu thông tin về Assembly. Với newbie thì chỉ cần hiểu đơn giản ví dụ chương trình built ra file Icetea.exe và IceTea.dll thì đó là các Assemblies của chương trình bạn.

 - Resources.resx: Cái này để thêm, sửa tài nguyên (resource) cho ứng dụng của bạn, dữ liệu có thể bao gồm (Binary data, tệp tin văn bản, audio, video, hình ảnh, XML files, ...)
Bạn có thể thêm Resource bằng cách đúp vào mục Resources.resx trong Solution Explorer, sau đó ấn nút Add Resource trên trang Resources trong Project Designer.

- Settings.settings: Theo mình tìm hiểu, đây là nơi lưu trữ các Preference lên ổ cứng, viết ra đĩa và sau đó đọc lại nếu chương trình được chạy lại.
Cách tạo/thay đổi Settings. Vào mục Settings.settings trên Solution Explorer, thiết lập các thuộc tính NameTypeScope, và Value. Mỗi dòng sẽ đại diện cho một thiết lập.
Solution Explore của một Form



PREFERENCE 

Theo mình thấy thì đây là nơi lưu trữ code của các namespace đã sử dụng trong chương trình.
 - App.Config: Hiểu đơn giản nhất, AppConfig là một file XML với nhiều thiết lập predefine. Hỗ trợ các bạn có thể thiết lập nhiều thứ cho ứng dụng của bạn, như sử dụng chuỗi connection từ App.config,v.v...

Nói chung là các bạn không cần biết quá nhiều về những thứ mình nói ở trên. Tiếp theo đây mới là những thứ quan trọng.





<YOURFORM>.CS 
Là file lưu trữ thông tin về form của các bạn. Nếu đúp chuột vào đó sẽ hiện ra giao diện quản lý và thiết kế của Form.

 - <YourForm>.Designer.cs: Đây sẽ là nơi chưa code khai báo các component, các đối tượng, sự kiện của Form. Khi các bạn thiết kế trên Form, thay đổi thuộc tính, thêm sự kiện trên Form nó sẽ tự động cập nhật code vào đây. 
Và các code sự kiện và thuộc tính đó sẽ nằm trong hàm private void InitializeComponent() và được gọi lại trong hàm dựng của YourForm()

VD: Khi bạn kéo vào Form một textBox thì nó sẽ tự phát sinh code:
private void InitializeComponent()
{
     this.txtBox1 = new System.Windows.Forms.TextBox();
     // 
     // txtBox1
     // 
     this.txtBox1.Location = new System.Drawing.Point(114, 156);
     this.txtBox1.Name = "txtBox1";
     this.txtBox1.Size = new System.Drawing.Size(172, 20);
     this.txtBox1.Text = "TextName";
     this.txtBox1.TabIndex = 1;
     // 
     // YourForm
     // 
     this.Controls.Add(this.txtBox_inA);
}


private System.Windows.Forms.TextBox txtBox1;


//
//Nếu ta thêm một sự kiện cho nó, thì trong code sẽ tự động thêm vào
this.txtBox1.MouseClick += new System.Windows.Forms.MouseEventHandler(this.txtBox1_MouseClick);
//
//

Lưu ý: Chúng ta có thể thêm/sửa thuộc tính và sự kiện trực tiếp trên hàm InitializeComponent() trong <YourForm>.Designer.cs.

 - <YourForm>.resx: Đây là nơi chứa tài nguyên (resource) của Form

 - Tiếp theo là tập hợp dãy các Class của Form. Đây là nơi các bạn Code và xử lý sự kiện, thuộc tính cho các Control trên Form của mình. Là nơi thường làm việc nhất :D


  PROGRAM.CS 

       File Program.cs                 
Đây là nơi chưa hàm Main, nơi khởi động chương trình với lệnh chạy truyền vào tham số là một Form bắt đầu: Application.Run(new StartForm());

Trên là những thông tin cơ bản về các file trong một Solution của chương trình C# Winform cơ bản, mình gửi đến các bạn những thứ đơn giản nhất theo cách mình hiểu. Mong nhận được sự góp ý đến từ các bạn.

Chào các bạn, chúc các bạn học tốt và hẹn gặp lại!




GIỚI THIỆU

Chào các bạn!

Hôm nay mình xin bắt đầu chuỗi bài hướng dẫn học lập trình Winform C# cơ bản kèm ví dụ cụ thể. Bài đầu tiên này mình xin phép giới thiệu với các bạn những thứ cơ bản nhất về Winform C#, và nó khác gì so với lập trình trên Console.
Chúng ta sẽ tìm hiểu 3 đặc điểm hướng đối tượng của nó





THUỘC TÍNH CỦA ĐỐI TƯỢNG

   Ở ngoài thực tế, thuộc tính là những đặc điểm của sự vật.
   Ví dụ: cô kia chân: dài, dáng: cao, da: trắng. Anh kia mũi: thấp, tóc: ngắn...v...v...
   Đối với Console App, thì thuộc tính là các biến kiểu private, nằm trong một Class và chúng ta hay dùng phương thức get - set để lấy giá trị cho nó. 
   Còn trong lập trình Winform C# thì thuộc tính là những đặc điểm - tính năng bên ngoài và bên trong của một đối tượng (Form, Control, Container,...).
   Dưới đây là bảng các thuộc tính giống nhau của các Control trong C#
Thuộc tính thường dùng trong C# - Winform
   
    Các bạn có thể thay đổi thuộc tính ở khung Properties trong lúc thiết kế Form, và cũng có thể thay đổi thuộc tính bằng code.

Ví dụ: một textBox cơ bản vừa được kéo ra từ Toolbox. Các bạn thực hiện các dòng code sau ở hàm dựng của Form (hàm này sẽ chạy đầu tiên khi Form load lên)
public YourForm()
{
     InitializeComponent();

     //Code thay đổi thuộc tính của textBox1
     textBox1.BackColor = Color.LightYellow;
     textBox1.Text = "Lập trình cuộc sống";
     textBox1.TextAlign = HorizontalAlignment.Center;
     textBox1.ForeColor = Color.Blue;
     
     //Code thay đổi thuộc tính button1
     button1.Text = "IceTea Việt";
     button1.BackColor = Color.LightGreen;
     button1.FlatStyle = FlatStyle.Flat;
     button1.Enabled = false;     
}

Kết quả sẽ là:


PHƯƠNG THỨC CỦA ĐỐI TƯỢNG

   Trong lập trình trên Console ta hay gọi một phương thức là "hàm". Nhưng nếu lập trình C# hướng đối tượng thì hàm đặt trong class được gọi là phương thức. Mỗi class dù là class thường hay là Form, hay bất cứ Control nào khác đều có phương thức riêng cho mình
   Chúng ta gọi (call) đến phương thức của nó, giống như là ra lệnh cho nó phải làm một hành động gì đó vậy. Cũng giông như chúng ta khi còn nhỏ ai cũng có phương thức là Học(), Ăn(), QuétNhà(),...vậy :D
Phương thức thường dùng trong C# - Winform


SỰ KIỆN CỦA CÁC ĐỐI TƯỢNG

   Sự kiện là gì?
   Ta cứ tưởng tượng như chúng ta nhảy, thì đó là sự kiện ghi nhận hành động nhảy. Con chim hót thì sự kiện là chim hót.
   Vậy trong winform C# theo đúng nghĩa đen nó, sự kiện là một hành động gì đó vừa được xảy ra. Ví dụ người dùng ấn vào một nút nào đó, thì đó là sự kiện Click, ấn phím nào đó thì là sự kiên KeyPress.

   Làm sao máy tính nhận biết được sự kiện?
   Nếu ở ngoài đời chúng ta nhìn bằng mắt, nghe bằng tai biết được sự kiện hành động đó đang diễn ra thì trong C# hỗ trợ cho chúng ta một bộ lắng nghe sự kiện EventHandler. Các bạn cứ hiểu đơn giản là nó sẽ dựa trên cơ chế ngắt của vi xử lý gửi và nhận các tín hiệu và trả về các phương thức cho bạn. Nếu tìm hiểu sâu ta sẽ đụng tới Delegate - thứ mà mình vẫn còn đang mơ hồ >.< Nếu sau này có điều kiện mình sẽ viết một bài sâu hơn để hướng dẫn các bạn với Event, Delegate và cách Custom sự kiện.
Các sự kiện thường dùng
    
    Vậy thì cần sự kiện để làm gì?
    Các bạn cứ tưởng tượng sự kiện như là một câu lệnh điều kiện if, nếu xảy ra sự kiện gì đó - thì ta sẽ xử lý để làm việc gì đó. Ví dụ như nếu Click chuột vào button đăng nhập trong game, thì nó sẽ xử lý kiểm tra tài khoản và mật khẩu, và sẽ xuất ra thông báo đăng nhập thành công chẳng hạn... Cứ lấy ví dụ bằng game cho dễ hình dung :D

    Sự kiện được khởi chạy khi nào?
    - Người dùng có thể khởi chạy các event bằng cách tương tác với chương trình của bạn. Ví dụ: Việc nhấp một button sẽ khởi chạy event Click của button
    - Các control có thể tự khởi chạy event riêng của mình. Ví dụ: control Timer sẽ kích hoạt event Tick của nó vào các khoảng thời gian đều đặn
    - Hệ điều hành (bất kỳ phiên bản nào của Windows) có thể khởi chạy các event
    - Bạn có thể khởi chạy các event bằng cách gọi chúng giống như gọi một phương thức 

    Làm cách nào để thêm một sự kiện cho Form hoặc control?
    Các bạn có thể thêm sự kiện bằng code, hoặc click đúp vào control muốn thêm để thêm sự kiện thường dùng nhất của nó, hoặc đúp chuột vào tên sự kiện cần thêm  trong khung sự kiện của ô Properties khi đang thiết kế form. Khi đó Visual Studio sẽ tự động generate code cho sự kiện đó vào <YourForm>.Designer.cs và gọi hàm đó vào class <YourForm> để các bạn thiết lập xử lý sự kiện
Thêm sự kiện bằng khung Properties

Vd: khi bạn đúp chuột vào sự kiện Click của button1 thì VS sẽ tự động tạo những đoạn code sau
// 
// Trong Yourform.Designer.cs
 
this.button1.Click += new System.EventHandler(this.button1_Click);

// Trong Class của YourForm nó sẽ gọi hàm để định nghĩa và xử lý cho sự kiện click trên

private void button1_Click(object sender, EventArgs e)
{
     //Các bạn sẽ cần gõ code xử lý sự kiện ở đây
}

Các bạn có thể thêm/xóa sự kiện bằng tay theo cú pháp
//

//Thêm vào Yourform.Designer.cs hay trong hàm dựng của Form đều được
this.Control.Sựkiện += new System.EventHandler(this.tên hàm sự kiện);


//và gọi hàm để định nghĩa cho sự kiện 
private void tên hàm sự kiện(object sender, XEventArgs e)
{
//Trong đó X có thế là Mouse, hoặc Graphics, hoặc có thể bỏ trống tùy loại sự kiện
}


//Xóa event vừa tạo
this.Control.Sựkiện -= new System.EventHandler(this.tên hàm sự kiện);

//

Hoặc các bạn cũng có thể gõ this.<control>.<Sự kiện> += rồi tab 2 lần để VS tự động generate sự kiện và hàm cho bạn nếu bạn ko biết rõ nó là EventArgs hay MouseEventArgs,.... Rất dễ đúng không các bạn :D

Cuối cùng mình xin gửi đến các bạn các đoạn code mẫu sau để đoán kết quả nó sau khi chạy nhé :D

//Trong Form.Designer.cs
private void InitializeComponent()
{
     this.textBox1 = new System.Windows.Forms.TextBox();
     this.button1 = new System.Windows.Forms.Button();
     this.SuspendLayout();
     // 
     // textBox1
     // 
     this.textBox1.Location = new System.Drawing.Point(156, 223);
     this.textBox1.Name = "textBox1";
     this.textBox1.Size = new System.Drawing.Size(183, 20);
     this.textBox1.TabIndex = 1;
     this.textBox1.BackColor = Color.LightYellow;
     this.textBox1.Text = "Lập trình cuộc sống";
     this.textBox1.TextAlign = HorizontalAlignment.Center;
     this.textBox1.Visible = false;
     // 
     // button1
     // 
     this.button1.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
     this.button1.Location = new System.Drawing.Point(210, 184);
     this.button1.Name = "button1";
     this.button1.Size = new System.Drawing.Size(75, 23);
     this.button1.TabIndex = 3;
     this.button1.Text = "TestButton";
     this.button1.UseVisualStyleBackColor = true;
     this.button1.Click += new System.EventHandler(this.button1_Click);
     // 
     // YourForm
     // 
     this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
     this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
     this.ClientSize = new System.Drawing.Size(625, 467);
     this.Controls.Add(this.button1);
     this.Controls.Add(this.textBox1);
     this.Name = "YourForm";
     this.Text = "Form1";
     this.ResumeLayout(false);
     this.PerformLayout();
}

private System.Windows.Forms.TextBox textBox1;
private System.Windows.Forms.Button button1;


//Trong Form Class của Form.cs
private void button1_Click(object sender, EventArgs e)
{
     MessageBox.Show("Cùng học MessageBox với IceTea Việt", "Thông báo");
}

Chúc các bạn học tốt, chào các bạn và hẹn gặp lại!


Contact Form

Name

Email *

Message *

Powered by Blogger.
Javascript DisablePlease Enable Javascript To See All Widget