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


   Chào các bạn! 
   Sau mấy ngày lười biếng thì hôm nay mình đã trở lại và ăn hại hơn xưa :D, phần vì ở là nghỉ hè nên lười, chỉ muốn chơi game và xem phim, phần vì mình vừa code xong game cờ Caro với con stupid A.I. Ai muốn chơi thử thì liên hệ mình nhé :D


GIỚI THIỆU

Hôm nay mình sẽ giới thiệu với các bạn 2 control đơn giản và cần thiết là RadioButtonCheckbox. Chúng ta hãy cùng xem có thể làm đc gì với nó nhé 



RADIO BUTTON

     RadioButton cho phép người dùng chỉ được chọn một lựa chọn duy nhất trong các lựa chọn cùng 1 "nhóm". Có nghĩa là nếu 1 nhóm các RadioButton thì nếu bạn check một nút, thì tất cả các nút còn lại đều ở trạng thái unchecked. Giống như bảng chọn giới tính thì chỉ được chọn Nam hoặc Nữ, chứ làm sao mà có kiểu lai hóa giữa 2 cái như vậy đc =))

     Một RadioButton có thể hiển thị nội dung text, hình ảnh hoặc cả 2. Các thuộc tính của RadionButton cũng tương tự như các control khác. Nhưng nó có thêm một thuộc tính Checked để lưu trạng thái đã chọn hay chưa chọn của nút
     Để thay đổi trạng thái cho RadioButton ta dùng cú pháp sau:
tênRadioButton.Checked = true;
 Ta tiếp tục với ví dụ sau: Ta có một form như hình: 
Ta sẽ viết code cho mặc định là nút đầu tiên sẽ được check, và nếu mục nào đang được check, khi bấm vào button1 thì nó sẽ hiện nội dung của mục đó.
//Ta dùng sự kiện FormLoad để mặc định cho nút đầu tiên được chọn
private void Form1_Load(object sender, EventArgs e)
{
       radioButton1.Checked = true;
}

//Sau đó xử lý sự kiện click cho Button1
private void button1_Click(object sender, EventArgs e)
{
       if (radioButton1.Checked == true)
       {
           MessageBox.Show("Bạn vừa chọn RadioButton 1 với nội dung là: " + radioButton1.Text);
           return;
       }
       else if (radioButton2.Checked == true)
       {
           MessageBox.Show("Bạn vừa chọn RadioButton 2 với nội dung là: " + radioButton2.Text);
           return;
       }
       else if (radioButton3.Checked == true)
       {
           MessageBox.Show("Bạn vừa chọn RadioButton 3 với nội dung là: " + radioButton3.Text);
           return;
       }
       else if (radioButton4.Checked == true)
       {
           MessageBox.Show("Bạn vừa chọn RadioButton 4 với nội dung là: " + radioButton4.Text);
           return;
       }
}
Và kết quả sẽ là:

CHECKBOX

     Không như RadioButtons chỉ có thể chọn một mục cho cả nhóm và khi đã chọn rồi thì không thể deselect (hủy chọn) được, thì Checkbox ta có thể chọn nhiều mục khác nhau cùng lúc và có thể chọn và hủy tùy ý. Checkbox thường được sử dụng để tạo các sự lựa chọn cho người dùng. Một ví dụ kinh điển là khi đăng kí tài khoản hay cài đặt phần mềm ta hay chọn vào "Tôi đồng ý với điều khoản trên..." :D
     Các thuộc tính cơ bản của Checkbox cũng giống tương tự như các Control cơ bản khác, tuy nhiên có thêm thuộc tính Checked, CheckState ThreeState
Các thuộc tính cơ bản của CheckBox
     THREE STATE CỦA CHECKBOX: Ta nói thêm về ThreeState. Khi đã bật lựa chọn này thì người dùng có thể tự do lựa chọn 3 lựa chọn trên một CheckBox là Checked, UnChecked và Indeterminate. Nếu ThreeState không được bật thì ta chỉ có thể cho Checkbox vào trạng thái Indeterminate bằng code, không trưc tiếp trên Form được. Tham khảo thêm trên MSDN

     Về sự kiện, ta có sự kiện hay dùng nhất của CheckBox đó là CheckedChangedCheckStateChanged. Ví dụ với đoạn code sau:
//Sự kiện CheckedChanged chỉ theo dõi được hai trạng thái???
private void checkBox4_CheckedChanged(object sender, EventArgs e)
{
       checkBox4.ThreeState = true;
       if(checkBox4.CheckState == CheckState.Checked)
       {
            MessageBox.Show(checkBox4.Text + " đang được chọn");
       }
       else if(checkBox4.CheckState == CheckState.Unchecked)
       {
            MessageBox.Show(checkBox4.Text + " không được chọn");
       }
       else if(checkBox4.CheckState == CheckState.Indeterminate)
       {
            MessageBox.Show(checkBox4.Text + " đang ở trạng thái Indeterminate");
       }
}

//Sự kiện CheckStateChanged theo dõi được cả ba trạng thái, bao gồm cả Indeterminate???
private void checkBox5_CheckStateChanged(object sender, EventArgs e)
{
       checkBox5.ThreeState = true;
       if (checkBox5.CheckState == CheckState.Checked)
       {
           MessageBox.Show(checkBox5.Text + " đang được chọn");
       }
       else if (checkBox5.CheckState == CheckState.Unchecked)
       {
           MessageBox.Show(checkBox5.Text + " không được chọn");
       }
       else if (checkBox5.CheckState == CheckState.Indeterminate)
       {
           MessageBox.Show(checkBox5.Text + " đang ở trạng thái Indeterminate");
       }
}
Và kết quả sẽ là khi ta chọn checkbox IceTea Việt thành Indeterminate thì nó sẽ không "lắng nghe" được và không xuât thông báo, còn ở checkbox iceteaviet.blogspot.com thì nó hoàn thành tốt cả ba trạng thái trong sự kiện

     Ngoài các sự kiện trên bạn cũng có thể kết hợp các control đã học để tùy biến cho các sự kiện của Checkbox và RadioButton. 


TỔNG KẾT
   RadioButton và Checkbox trong C# Winforms là những control cho phép người dùng xác định những chọn lựa của mình thông qua những gợi ý, đề xuất từ chương trình. Là những control hữu dụng không thể thiếu trong các chương trình hiện nay

     Bài này đến đây là kết thúc rồi, các bạn cũng đã học gần hết các Control cơ bản rồi đó, sau khi học đầy đủ chúng ta lại làm đồ án thôi :D :D Nhớ làm bài Pet Project #1 của mình tại đây nhé: http://iceteaviet.blogspot.com/2015/07/winform-c-can-banproject-1-phan-mem.html

     Chào các bạn, chúc các bạn học tốt!


Chào các bạn!

    Sau 4 Control đã học, thì bây giờ có lẽ các bạn đang rất muốn làm một thứ gì đó để làm mốc cho những gì mình học đúng không? 
Như mình đã hứa và cũng là mục tiêu của blog - Tutorial with example. Và bây giờ mình sẽ gửi đến các bạn yêu cầu của đồ án 1 - Phần mềm Calculator
Phần mềm Calculator trên Win 8
Rồi yêu cầu của mình là: Chỉ với 4 control đã học (textBox, Label, MessageBox, Button)
 - Giao diện tương tự như Calculator của Windows, có đầy đủ nút bấm và chức năng tương tự, nếu thêm được chức năng mới thì càng tốt
 - Có khung đăng nhập, nếu chưa đăng nhập thì các nút chức năng bị mờ đi không dùng được
 - Thực hiện phần hiển thị phép tính, hiện thị kết quả, cách nhập xuất tương tự Calculator
 - Có thể thêm chức năng giải phương trình, hoặc các chức năng khác nếu thích

Các bạn có thể xem chi tiết yêu cầu và bản Demo của mình tại video sau:



Các bạn có 2 tuần để làm, sau 2 tuần mình sẽ đăng source code lên và kèm theo bài hướng dẫn nho nhỏ nhé :D

Link source code demo:  http://www.mediafire.com/download/ka2q3330uw3pqz0/DemoCalc.rar


Chúc các bạn học tốt và cố gắng hoàn thành Pet Project đầu tay cho mình nhé 


Chào các bạn!
Mình xin giới thiệu với các bạn một số tài liệu tham khảo cũng như giáo trình nhập môn lập trình C/C++ dành cho các bạn mới học. Mức độ dừng ở sinh viên năm nhất của ngành CNTT, với các khái niệm cơ bản về lập trình



TÀI LIỆU THAM KHẢO TIẾNG ANH

Bao gồm: 
- Data structures and Program Design in C++ (Robert L. Kruse)
- Introduction to Algorithms - Third Edition (THOMAS H. CORMEN)
- Và 1 số chuyên đề tham khảo khác.. 

TIN HỌC ĐẠI CƯƠNG UIT 

Đây là bộ tài liệu tham khảo phục vụ cho môn học Nhập môn lập trình tại trường ĐH Công nghệ thông tin – ĐHQG-HCM. Mời các bạn cùng tham khảo.

NHẬP MÔN LẬP TRÌNH FIT HCMUS



Đây là bộ tài liệu phục vụ cho môn học Nhập môn - Kỹ thuật lập trình của khoa CNTT tại trường ĐH Khoa học tự nhiên – ĐHQG-HCM. Mời các bạn cùng tham khảo.

TRANG HỖ TRỢ HỌC LẬP TRÌNH

Đặc biệt: Các bạn nên "học" cách search bằng Tiếng Anh các thứ mình cần trên http://stackoverflow.com/ . Nó sẽ giúp ích cho các bạn rất nhiều sau này :D

Lưu ý: Tài liệu chỉ sử dụng cho mục đích tham khảo và học tập. Chúc các bạn học tốt.


GIỚI THIỆU

Chào các bạn!

Hôm nay mình xin nói sơ về chức năng khá hay của Textbox đó là AutoComplete
Chức năng Autocomplete giúp gợi ý, tự hoàn thiện từ khi gõ của Textbox C#: Đây là một chức năng khá hay và làm tăng tính chuyên nghiệp của phần mềm bạn làm lên rất nhiều!
Chức năng AutoComplete của Textbox trong C#

Nó gồm có 3 thuộc tính:

AutocompleteCustomSource 
Là một Collection, nơi chứa những từ gợi ý. Khi gõ vào những từ gần giống trong này thì nó sẽ xuất hiện gọi ý. (chỉ dùng làm nguồn cho chế độ CustomSource).
Ta có thể thêm từ vào đây bằng code thông qua AutoCompleteStringCollection. Hoặc thêm vào thông qua Properties ở ngoài giao diện form:

 
 AutoCompleteMode 
Là kiểu gợi ý. Có 3 chế độ là
   + Suggest: gợi ý ở dạng danh sách, muốn chọn phải ấn chuột hoặc ấn phím di chuyển
   + Append: khi gõ từ gần đúng thì nó sẽ hoàn thiện luôn
   + SuggestAppend: (nên dùng) nó kết hơp cả 2 cái trên. Tức là sẽ vừa hiện thị danh sách gợi ý vừa hoàn thiện luôn.


 AutocompleteSoure  
  + CustomSource: lấy những từ đã gõ trong AutocompleteCustomSource để gợi ý
   + HistoryList: lấy những từ đã gõ để gợi ý
   + Các mode còn lại ít dùng nên mình sẽ không đề cập ở đây.

Sau đây là đoạn code tham khảo về cách thiết lập AutoComplete bằng code:

 private void Form1_Load(object sender, EventArgs e)
 {
       LoadDataToCollection();
       SetDataToCollection();
 }
 

//Thêm bằng tay vào Collection các từ khóa
 private void SetDataToCollection()
 {
       AutoCompleteStringCollection auto1 = new AutoCompleteStringCollection();
       txtBox1.AutoCompleteMode = AutoCompleteMode.Append;
       txtBox1.AutoCompleteSource = AutoCompleteSource.CustomSource;
       txtBox2.AutoCompleteMode = AutoCompleteMode.Suggest;
       txtBox2.AutoCompleteSource = AutoCompleteSource.CustomSource;
       string[] arrayName ={"Tâm",
                          "Nhã",
                          "Sơn",
                          "Phúc",
                          "Huyền",
                          "Ngân",
                          "Tấn Huy",
                          "Huy Tôi",
                          "Nguyễn ",
                          "iceteaviet.blogspot.com",
                          "iceteaviet.blogspot.com/2015/07/lam-quen-voi-textbox-trong-c.html",
                          "iceteaviet.blogspot.com/2015/07/hoc-c-thi-bat-au-tu-au.html",
                          "iceteaviet.blogspot.com/2015/07/oi-tuong-button.html"
                               
                          };
       foreach (string name in arrayName) 
       {
           auto1.Add(name);
       }
 
       txtBox1.AutoCompleteCustomSource = auto1;
       txtBox2.AutoCompleteCustomSource = auto1;
}


//Thêm các từ khóa từ cơ sở dữ liệu (các bạn nào chưa học qua SQL Ser thì khỏi quan tâm nhé)
private void LoadDataToCollection()
{
      AutoCompleteStringCollection auto2 = new AutoCompleteStringCollection();
           
      string strConnection = "Data Source=.\\SQLEXPRESS; Database=Northwind;Integrated Security=true;";
      SqlConnection conn = new SqlConnection();
      conn.ConnectionString = strConnection;
      SqlCommand cmd = new SqlCommand();
      cmd.Connection = conn;
      cmd.CommandType = CommandType.Text;
 
      string sql = "Select  ContactName from Customers ";
      SqlCommand com = new SqlCommand();
 
      com.Connection = conn;
      com.CommandText = sql;
      com.CommandType = CommandType.Text;
      conn.Open();
      SqlDataReader reader ;
      reader = com.ExecuteReader();
      if(reader!=null)
      {
             while(reader.Read())
             {
                auto2.Add(reader["ContactName"].ToString());
             }
      }
 
      txtName1.AutoCompleteMode = AutoCompleteMode.Append;
      txtName1.AutoCompleteSource = AutoCompleteSource.CustomSource;
      txtName1.AutoCompleteCustomSource = auto2;
 
      txtName2.AutoCompleteMode = AutoCompleteMode.Suggest;
      txtName2.AutoCompleteSource = AutoCompleteSource.CustomSource;
      txtName2.AutoCompleteCustomSource = auto2;
 
 
}

TỔNG KẾT
Chức năng AutoComplete của textbox thường được dùng để làm gợi ý cho khung tra từ điển, danh bạ. Hoặc các phần mềm có mục điền thông tin thay vì dùng Combobox bạn có thể dùng textbox với Autocomplete sẽ làm cho phần mềm bạn trở nên chuyên nghiệp hơn nhiều.
Các bạn cũng có thể tự built cho mình một Control Autocomplete như thế. Tham khảo bài viết của tác giả Psycho Coder Tại đây. Hoặc tham khảo thêm tại đây và trên MSDN

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



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!


Contact Form

Name

Email *

Message *

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