Phần 1: Form và các Control thông dụng


Đây là các bài tập cơ bản hướng dẫn thiết kế Form và cách sử dụng các Control thông dụng trong Visual Studio để xây dựng ứng dụng WinForms. Ngoài ra chúng ta sẽ làm quen với cách lập trình sử dụng các thuộc tính, phương thức, sự kiện của Form và các Control.


Nội dung


Bài 1: Sử dụng Form và Button

Thiết kế Form có hai nút lệnh có tên là &Green và &Yellow. Form có nút Min, Max Button.

  • Khi click vào nút lệnh Green, Form đổi màu nền thành màu Xanh (Green) và đổi tiêu đề của Form thành “Green Colour”
  • Khi click vào nút lệnh Yellow, Form đổi màu nền thành màu Vàng (Yellow) và đổi tiêu đề của Form thành “Yellow Colour”.

Xem hướng dẫn


Bài 2: Sử dụng Form, TextBox và Button

Thiết kế Form có một TextBox để trắng, và 3 nút lệnh: Display, Clear, Exit.

  • Khi Click nút Display, hộp TextBox hiện lên câu: “Xin chào bạn đến với ngôn ngữ lập trình C#”
  • Click nút Clear, hộp TextBox bị xoá trắng
  • Click nút Exit để thoát khỏi chương trình.

Xem hướng dẫn


Bài 3: Sử dụng Form, TextBox, Label và Button

Thiết kế Form có một TextBox (có thể gõ nhiều dòng), một Label, 1 nút lệnh View, 1 nút lệnh Exit để thực hiện công việc sau:

  • Ban đầu, nút View bị mờ, khi bắt đầu ấn phím bất kì vào TextBox, nút View mới được kích hoạt.
  • Sau khi nhập vào ô TextBox, click nút View, Label sẽ hiển thị nội dung của TextBox
  • Click nút Exit để thoát khỏi chương trình.

Xem hướng dẫn


Bài 4: Sử dụng Form, Label, Groupbox và RadioButton

Thiết kế Form gồm 1 Label có dòng chữ “Thuộc tính MultiLine để làm gì?” và 4 RadioButton lần lượt có các tiêu đề sau: Chữ đậm, Chữ nghiêng, Xuống dòng, Chữ hoa. Các nút RadioButton được đặt trong một Groupbox có nhãn là “Trả lời”. Cuối cùng là một Label để hiển thị kết quả. Các công việc cần thực hiện:

  • Ban đầu Label hiển thị kết quả là rỗng.
  • Khi chọn RadioButton thứ 3, Label Kết quả hiển thị dòng chữ “Đúng”.
  • Khi chọn các RadioButton còn lại, Label Kết quả hiển thị dòng chữ “Sai”

Xem hướng dẫn


Bài 5: Sử dụng Form, Label, Groupbox và CheckBox

Thiết kế Form gồm 1 Groupbox có nhãn là “Chọn các ca sỹ VN bạn yêu thích”, chứa 5 CheckBox lần lượt có nhãn là: Mỹ Tâm, Mỹ Linh, Thanh Lam, Quang Dũng, Lam Trường, 1 nút lệnh “Xem” và một Label để hiển thị danh sách các ca sĩ bạn yêu thích. Các công việc cần thực hiện:

  • Nếu không chọn ca sĩ nào, Label sẽ hiện nội dung “Bạn không lựa chọn ca sĩ nào trong danh sách trên”.
  • Nếu có chọn, Label sẽ hiện nội dung: “Các ca sĩ mà bạn yêu thích là” <danh sách các ca sĩ>

Xem hướng dẫn


Bài 6: Sử dụng Form, TextBox và ListBox

Thiết kế Form gồm 1 ListBox và 1 TextBox. Khi Click vào các phần tử trong ListBox, TextBox sẽ hiển thị nội dung của các phần tử được chọn.

Xem hướng dẫn


Bài 7: Sử dụng Form, ListBox và Button

Thiết kế Form gồm có 2 ListBox, 2 Label và 4 nút lệnh có giao diện như sau:

  • Chọn các mặt hàng bên “Danh sách các mặt hàng”, khi Click vào nút >, sẽ chuyển các phần tử được lựa chọn sang bên “Các mặt hàng lựa chọn”, (đồng thời xoá đi các phần tử được lựa chọn bên “Danh sách các mặt hàng”)
  • Khi Click nút >> sẽ chuyển toàn bộ các phần tử bên “Danh sách các mặt hàng” sang bên “Các mặt hàng lựa chọn”, (đồng thời xoá trắng bên “Danh sách các mặt hàng”)
  • Chọn các mặt hàng bên “Các mặt hàng lựa chọn”, khi Click vào nút <, sẽ chuyển các phần tử được lựa chọn sang bên “Danh sách các mặt hàng”, (đồng thời xoá đi các phần tử được lựa chọn đó bên “Các mặt hàng lựa chọn”.
  • Khi Click nút << sẽ chuyển toàn bộ các phần tử bên “Các mặt hàng lựa chọn” sang bên “Danh sách các mặt hàng”, (đồng thời xoá trắng bên “Các mặt hàng lựa chọn”)
Thiết kế Form với ListBox

Thiết kế Form với ListBox

Xem hướng dẫn


Bài 8: Sử dụng Form, TextBox, ComboBox và Button

Thiết kế Form gồm có 1 TextBox điền Họ tên, 3 ComboBox có các Label đi kèm có nhãn: Ngày, Tháng, Năm

  • ComboBox Ngày nạp các giá trị từ 1 đến 31 (không cho nhập thêm dữ liệu)
  • ComboBox Tháng nạp các giá trị từ 1 đến 12 (không cho phép nhập thêm dữ liệu)
  • ComboBox Năm nạp các giá trị từ 1930 đến 2010 (cho phép nhập thêm dữ liệu)

Khi ấn nút lệnh Kiểm tra, nếu ngày tháng năm sinh là hợp lệ sẽ hiện ra MessageBox thông báo Họ tên và ngày sinh. Nếu dữ liệu ngày tháng không hợp lệ sẽ hiện ra MessageBox thông báo “Ngày sinh không hợp lệ!”

Xem hướng dẫn


Bài 9: Thiết kế chương trình Calculator đơn giản

Chương trình Calculator đơn giản

Chương trình Calculator đơn giản

  • Các hộp TextBox A+B, A*B, A-B, A/B không được phép sửa dữ liệu (Thuộc tính ReadOnly = True)
  • Sau khi nhập dữ liệu cho A và B, Nếu dữ liệu nhập đúng kiểu số, khi ấn nút Result sẽ tính kết quả để điền vào các TextBox A+B, A-B, A*B, A/B
  • Ấn nút Reset sẽ xoá trắng tất cả các TextBox, đưa Focus về TextBox A
  • Ấn nút Exit để thoát khỏi chương trình.
  • Lưu ý: Tạo TabIndex theo thứ tự: TextBox A, TextBox B, nút Result, nút Reset, nút Exit.

Bài 10: Thiết kế Form đăng nhập

Form đăng nhập

Form đăng nhập

Khi người sử dụng gõ UserName = “admin” và Password = “123” hoặc UserName = “user” và Password = “456” thì đóng Form đăng nhập và sẽ gọi sang Form thứ 2 có giao diện như sau:

Form Edit

Form Edit

  • Nếu UserName = “admin” thì hiển thị cả 2 GroupBox Style và Colour
  • Nếu UserName = “user”, chỉ hiển thị GroupBox Style, không hiển thị Groupbox Colour.
  • Các chức năng của Form Edit:
    • Khi chọn CheckBox Bold, chữ sẽ đậm, nếu bỏ chọn chữ sẽ bình thường. Tương tự với các CheckBox Italic (chữ nghiêng) và Underline (gạch dưới chân)
    • Khi click vào RadioButton Blue, chữ sẽ chuyển sang màu xanh, tương tự với Red và Grayed.

Tải SourceCode


Tham khảo thêm

Có thể bạn sẽ thích…

55 phản hồi

  1. Tim Oday viết:

    Bài tập số 5 thay vì viết từng câu lệnh If kiểm tra các CheckBox, chúng ta có thể dùng vòng lặp duyệt qua các CheckBox trong groupbox1, ví dụ:

    
    foreach (CheckBox chk in groupBox1.Controls)
                {
                    if (chk.Checked)
                        strKetQua += chk.Text + ", ";
                }
    
    
  2. Tim Oday viết:

    Bài tập 4 gặp vấn đề khi khởi động Form, tự động nó chọn vào 1 RadioButton nên nó hiển thị luôn kết quả.
    Cách giải quyết, chọn control RadioButton, trong cửa sổ Properties thay đổi thuộc tính

    AutoCheck = false;

    của các RadioButton. Sau đó mở code thêm dòng

    nameRadioButton.AutoCheck = true;

    vào sau

    InitializeComponent();
  3. Tim Oday viết:

    Bài tập 4 cũng có thể cài thiện code vì phần xử lý của các RadioButton là tương tự nhau, nên ta có thể gộp chung vào một phương thức, ví dụ:

    void CheckChanged(object sender, EventArgs e)
            {
                RadioButton rbt = sender as RadioButton;
                if (rbt.Checked)
                {
                    if(rbt == rbtXuongDong)
                        lblKetQua.Text ="Đúng";
                    else
                        lblKetQua.Text = "Sai";
                }
            }

    Sau đó viết thêm vào sau Phương thức

    InitializeComponent()

    câu lệnh sau:

    rbtChuDam.CheckedChanged += CheckChanged;
    rbtChuNghieng.CheckedChanged += CheckChanged;
    rbtXuongDong.CheckedChanged += CheckChanged;
    rbtChuHoa.CheckedChanged += CheckChanged;
  4. quan viết:

    thầy ơi . ở bài 3 đấy, cái phần if else em muốn thêm thuộc tính khi mà viết chữ thì màu nền đổi sang màu khác còn khi không có chữ thì màu nền lại về màu trắng. sao e viết thế này không đk. thầy chỉ em với.em đang học môn này cảu thầy ạ.

    if (txtHienthi.Text.Trim() != "")
                    bttView.Enabled = true;
                    txtHienthi.BackColor= Color.Pink;
                else
                {
                    bttView.Enabled = false;
                    txtHienthi.BackColor= Color.White;
                }
    • Phan Tiến viết:

      Em chú ý,
      Phần câu lệnh If else nếu sau đó là một khối lệnh thì em phải đặt trong dấu {} giống như em học Pascal, sau phần If có một khối lệnh thì phải bắt đầu bằng begin … end;
      Code sẽ phải sửa lại:

      if (txtHienthi.Text.Trim() != "")
      {
      bttView.Enabled = true;
      txtHienthi.BackColor= Color.Pink;
      }
      else
      {
      bttView.Enabled = false;
      txtHienthi.BackColor= Color.White;
      }
  5. huế viết:

    thầy ơi em muốn tạo một giao diện chính sau đó em kích vào các nút thì nó hiện ra các giao diện con thì làm thế nào ạ

  6. Sơn viết:

    Thầy ơi câu hỏi hơi khó hiểu nhưng thầy giúp e với ạ
    e có 1 combobox đổ dữ liệu từ CSDL ra combobox.ValueMember = “MaPB” combobox.DisplayMember=”TenPB”
    e lấy dữ liệu từ CSDL thông qua datagridview bằng sự kiện cell_click
    thì e lấy đc combobox.ValueMember còn combobox.DisplayMember thì làm như nào để nó hiện lên ạ

  7. hathihue591858 viết:

    thầy ơi đề tài của em gồm hai đối tượng là quản lý và nhân viên. bây giờ em muốn phân quền cho quản lý làm được hết các quyền còn nhân viên thì hạn chế các chức năng được xem. thì em phải làm thế nào ạ.

    • Phan Tiến viết:

      Em sẽ kiểm tra user đó có quyền gì, rồi dùng thuộc tính Enable hoặc Visible của các control để cho người sử dụng truy cập các chức năng đó.
      Ví dụ User1 chỉ có quyền xem, không có quyền thêm mới chẳng hạn thì vô hiệu hoá nút thêm mới đi, giả sử nút đó là btnThemMoi.Enabled = false;

  8. Dung viết:

    thầy ơi em làm form đăng nhập xong nhưng muốn liên kết với form chính thì làm như thế nào ạ

    • Phan Tiến viết:

      Em có thể thiết kế một form cha (ứng dụng MDI), thiết kế các menu trong đó có menu bật form đăng nhập. Em xem bài tập phần 2 về thiết kế ứng dụng MDI.

      • Dung viết:

        thưa thầy em muốn vào hệ thống thì cái form đăng nhập hiện lên đầu tiên sau đó là form chương trình chính mà e đã đặt chương trình chính là form cha rồi ạ,em viết form đăng nhập riêng liệu có cách nào liên kết 2 form với nhau k ạ

        • Phan Tiến viết:

          Liên kết được chứ em nhưng mình chưa hiểu em định liên kết những cái gì của 2 form. Em dùng phương thức Show() hoặc ShowDialog() để hiển thị một form khác thôi mà. Dùng phương thức Hide() để ẩn một form nào đó. Em xem thêm câu trả lời mình đã trả lời bạn hà huế nhé.
          Chú ý: Thường form đăng nhập có 2 nút OK và Cancel, khi kích nút OK thì em phải kiểm tra người dùng này có hợp lệ không và tra về kết quả qua DialogResult. Khi Form đăng nhập thành công thì bật form chính lên.

  9. hà huế viết:

    Đăng nhập–>from chính–>from con ntn thì from cha là cái nào vậy ạ. e muốn khi vào chương chình thì from đăng nhập hiện lên đầu tiên ạ.

    • Phan Tiến viết:

      form cha vẫn là form MDI đó em, là form chứa giao diện của toàn bộ ứng dụng.
      Để làm như em muốn. Ban đầu em cho form Đăng nhập chạy đầu tiền (chọn phương thức ShowDialog()) -> nếu tên đăng nhập và mật khẩu hợp lệ thì mở form chính và ẩn form Đăng nhập (dùng phương thức Hide()). Các form con sẽ hiển thị trong form chính.

  10. nguyenthituoi viết:


    SqlConnection con = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=D:\SV\QLBH\QLBH\QLBS.mdf;Integrated Security=True;User Instance=True");
    SqlDataAdapter sda = new SqlDataAdapter("Select count(*)from tblDangNhap where MaNV='" + txtTenDangNhap.Text + "'and Pass='" + txtMatKhau.Text + "'", con);
    DataTable dt = new DataTable();
    sda.Fill(dt);

    /*string sql="Select *from tblDangNhap where MaNV='" + txtTenDangNhap.Text + "'and Pass='" + txtMatKhau.Text + "'";
    SqlCommand cmd = new SqlCommand(sql);
    SqlDataReader dta = cmd.ExecuteReader();
    if (dta.Read() == true)
    {
    this.Hide();
    frmQLBSach ss = new frmQLBSach();
    ss.Show();
    }*/
    if (dt.Rows[0][0].ToString() == "1")
    {
    this.Hide();
    frmQLBSach ss = new frmQLBSach();
    ss.Show();
    }
    else
    {
    MessageBox.Show(" Có lỗi vui lòng kiểm tra lại tên đăng nhập hoặc mật khâu!");
    }

    thầy ơi em nhập vào đúng mật khẩu pass nhưng nó luôn thực hiện câu lệnh ở phần else e k biết lỗi ở đâu ạ thầy kiểm tra giúp e vs

    • Phan Tiến viết:

      Câu lệnh Sql của em bị sai, em thiếu khoảng trắng, em xem câu lệnh của mình
      Select count(*) from tblDangNhap where MaNV='” + txtTenDangNhap.Text + “‘ and Pass='” + txtMatKhau.Text + “‘”
      Em MessageBox để show lên giá trị trong dt.Rows[0][0].ToString()
      Để đơn giản em có thể sử dụng trực tiếp phương thức ExceuteScalar() rồi so sánh giá trị

  11. nguyenthituoi viết:

    SqlDataAdapter sda = new SqlDataAdapter(” Select Count(*) From tblDangNhap Where MaNV= ‘ ” + txtTenDangNhap.Text + ” ‘ and Pass= ‘ ” + txtMatKhau.Text + ” ‘ ” , con);
    em sửa ntn đã được chưa ạ

  12. nguyenthituoi viết:

    thầy ơi nó vẫn báo lỗi như vậy ạ,thây xem giúp em sai chỗ nào với ạ

    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;
    using System.Data.SqlClient;

    namespace BaiTapLon
    {
    public partial class frmDangNhap : Form
    {
    public frmDangNhap()
    {
    InitializeComponent();
    }

    private void btnOK_Click(object sender, EventArgs e)
    {
    SqlConnection con = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=D:\SV\QLBH\QLBH\QLBS.mdf;Integrated Security=True;User Instance=True");
    SqlDataAdapter sda = new SqlDataAdapter("Select count(*) from tblDangNhap where MaNV='" + txtTenDangNhap.Text + "' and Pass='" + txtMatKhau.Text + "'" , con);
    DataTable dt = new DataTable();
    sda.Fill(dt);
    if (dt.Rows[0][0].ToString() == "1")
    {
    this.Hide();
    frmQLBSach ss = new frmQLBSach();
    ss.Show();
    }
    else
    {
    MessageBox.Show(" Có lỗi vui lòng kiểm tra lại tên đăng nhập hoặc mật khâu!");
    }
    }

    private void btnThoat_Click(object sender, EventArgs e)
    {
    this.Close();
    }
    }
    }

  13. Duy Nhật viết:

    Thầy ơi cho em hỏi?, Em làm mờ 1 button Lưu khi bắt đầu mở Form, sau đó em cho bấm Sửa thì Lưu hiện, nhưng khi nhấn Lưu lại, em muốn Lưu mờ lại thì bị lỗi luu.enabled.false, em cám ơn thầy

  14. đặng xuân vương viết:

    Thầy ơi cho em hỏi là bài số 10 á, mình muốn truy xuất đến từng groupbook để hiển thị từng groupbook hoặc muốn hiển thị hết thì làm sao ạ.
    Form 1:
    code của e đây. chạy toàn báo lỗi.
    private void btnLogin_Click(object sender, EventArgs e)
    {
    Edit frm = new Edit();

    if (this.txtUser.Text == “phamminhtuan” && this.txtPassWord.Text == “123456”)
    {
    frm.grbStyle_formEdit.Update();

    frm.Show();
    }
    dangnhap();

    }
    form 2:
    private void grbStyle_Enter(object sender, EventArgs e)
    {

    }
    public GroupBox grbStyle_formEdit
    {
    get
    {
    return grbStyle;
    }
    set
    {
    grbStyle = value;
    }
    }
    và nếu truy xuất được group rồi e muốn truy xuất từng control trong groupbook thì phải làm sao ạ

    • Phan Tiến viết:

      Chào em,
      Cách đơn giản nhất em đặt thuộc tính Modifier cho các control là Internal hoặc Public (mặc định là Private), khi đó em có thể truy xuất từ form khác mà không cần phải khai báo thuộc tính như của em ở Form 2
      Ví dụ như code ở form 1 khi em gọi:
      Edit frm = new Edit();
      frm. grbStyle.Update();
      hoặc control chkBold trên grbStyle làm mở đi chẳng hạn
      frm.chkBold.Enable = false;

  15. đặng xuân vương viết:

    Thưa thầy sao khi em truy xuất thì nó không báo lỗi gì nhưng khi chạy thì form 2 nó không hiển lên gì cả.
    Edit frm = new Edit();

    if (this.txtUser.Text == “phamminhtuan” && this.txtPassWord.Text == “123456”)
    {
    frm.grbStyle.Show();
    frm.chkBold.Enabled = false;
    }
    dangnhap();

    }

  16. Nguyen Thi Tuyet viết:

    Hình như bạn quên phương thức Show() của form.
    frm.Show();

  17. đặng xuân vương viết:

    ok bạn, cám ơn bạn nhiều.

  18. võ thị thùy dung viết:

    Thầy ơi cho e hỏi là tại sao viết theo kiểu này thì check vào checkbook thì chữ không thay đổi ạ
    if (frm.chkBold.Checked == true)
    {
    frm.txtEditText.Font = new Font(frm.txtEditText.Font, FontStyle.Bold);
    frm.txtEditText.Clear();
    frm.txtEditText.Text = frm.txtEditText.Text;
    frm.Show();
    }

    else if (frm.chkItalic.Checked == true)
    {
    frm.chkBold.Checked = false;
    frm.txtEditText.Font = new Font(frm.txtEditText.Font, FontStyle.Italic);
    frm.txtEditText.Text = frm.txtEditText.Text;
    }

  19. võ thị thùy dung viết:

    sự kiện này nằm trong nút login, nếu e để thuộc tính Autocheck của các checkbook và radiobutton là false thì khi login vào nó chỉ thay đổi chữ 1 lần, có cách nào khi em chọn các checkbook và radiobutton thì chữ thay đổi luôn được ko ạ.
    dưới đây là toàn bộ đoạn code của em ạ.
    private void btnLogin_Click(object sender, EventArgs e)
    {
    Edit frm = new Edit();
    //frm.chkBold.AutoCheck = true;
    //frm.chkUnderline.AutoCheck = true;
    //frm.chkItalic.AutoCheck = frm.chkItalic.AutoCheck = true;

    if (this.txtUser.Text == “phamminhtuan” && this.txtPassWord.Text == “123456”)
    {
    frm.grbStyle.Enabled = true;
    frm.grbColour.Enabled = false;
    frm.Show();
    }
    else if (this.txtUser.Text == “admin” && this.txtPassWord.Text == “123”)
    {
    frm.grbStyle.Enabled = true;
    frm.grbColour.Enabled = true;
    frm.Show();
    }
    dangnhap();

    if (frm.chkBold.Checked == true)
    {
    frm.txtEditText.Font = new Font(frm.txtEditText.Font, FontStyle.Bold);
    frm.txtEditText.Clear();
    frm.txtEditText.Text = frm.txtEditText.Text;
    frm.Show();
    }

    else if (frm.chkItalic.Checked == true)
    {
    frm.chkBold.Checked = false;
    frm.txtEditText.Font = new Font(frm.txtEditText.Font, FontStyle.Italic);
    frm.txtEditText.Text = frm.txtEditText.Text;
    }

    //frm.rdoBlue.AutoCheck = true;
    //frm.rdoGreen.AutoCheck = true;
    //frm.rdoRed.AutoCheck = true;

    if (frm.rdoBlue.Checked == true)
    frm.txtEditText.ForeColor = Color.Blue;

    else if (frm.rdoRed.Checked == true)
    frm.txtEditText.ForeColor = Color.Red;
    else if(frm.rdoGreen.Checked==true)
    frm.txtEditText.ForeColor=Color.Green;
    }

  20. võ thị thùy dung viết:

    Dạ e đã làm xong rồi, em cảm ơn thầy.
    Mong thầy có thêm bài tập để tụ em rèn luyện thêm

  21. đặng xuân vương viết:

    vậy thầy up lên cho bọn e học hỏi với a. Mà thầy ơi cho e hỏi trên form có lệnh nào delay rồi sau đó cập nhập hiện thị sự kiện mới ko ạ

  22. Quốc Bình viết:

    Em muốn tạo form cho nhiều user đăng nhập và có phân quyền sử dụng một số sheet theo ý mình thì phải làm như thế nào vậy thầy?

  23. Thảo viết:

    Em chào thầy.
    thầy ơi cho em hỏi làm sao để có chú thích trong textbox. khi chưa nhập dữ liệu thì hiện thị chú thích ra đây là textbox cần nhập gì, khi người dùng nhập dữ liệu thì mất đi.
    em cảm ơn thầy.

      • Dung viết:

        1) Create a class .cs file called for example MyExtensions.cs having a namespace called for example ‘Extensions’.

        2) Create a method in the TextBox called Init(string prompt) that takes the prompt text you want to display inside the TextBox.

        3) Let me stop talking and give you the rest of the code for MyExtensions.cs (The entire code):

        MyExtensions.cs

        using System.Drawing;
        using System.Windows.Forms;

        namespace Extensions
        {
        public static class MyExtensions
        {

        public static void Init(this TextBox textBox, string prompt)
        {
        textBox.Text = prompt;
        bool wma = true;
        textBox.ForeColor = Color.Gray;
        textBox.GotFocus += (source, ex) =>
        {
        if (((TextBox)source).ForeColor == Color.Black)
        return;
        if (wma)
        {
        wma = false;
        textBox.Text = “”;
        textBox.ForeColor = Color.Black;
        }
        };

        textBox.LostFocus += (source, ex) =>
        {
        TextBox t = ((TextBox)source);
        if (t.Text.Length == 0)
        {
        t.Text = prompt;
        t.ForeColor = Color.Gray;
        return;
        }
        if (!wma && string.IsNullOrEmpty(textBox.Text))
        {
        wma = true;
        textBox.Text = prompt;
        textBox.ForeColor = Color.Gray;
        }
        };
        textBox.TextChanged += (source, ex) =>
        {
        if (((TextBox)source).Text.Length > 0)
        {
        textBox.ForeColor = Color.Black;
        }
        };
        }

        }
        }
        Now Assume that you have three TextBox’s : tbUsername, tbPassword, tbConfirm:

        In your Form_Load(object sender, EventArgs e) method initialize your three TextBox’s to have their appropriate Prompt Text Messages:

        using Extensions;

        namespace MyApp{

        public partial class Form1 : Form{

        private void Form1_Load(object sender,
        EventArgs e){

        tbUsername.Init(“Type a username”);
        tbPassword.Init(“Type a password”);
        tbConfirm.Init(“Confirm your password”);
        }
        }
        }

  24. Dung viết:

    em chào thầy
    em đang làm theo cách này nhưng phần gọi đến class trong from_load,nhưng làm không ra, thầy có thể giải thích giúp em được k ạ.
    tbUsername.Init(“Type a username”);
    tbPassword.Init(“Type a password”);
    tbConfirm.Init(“Confirm your password”);
    em cam ơn thầy

  25. phước viết:

    thầy ơi cho e hỏi:
    . Để thực hiện chức năng Đóng Form ta dùng nút lệnh nào?

    29. Trong thiết kế cơ sở dữ liệu ở MS. Access thuộc tính nào của Field dùng để đưa ra thông báo lỗi trong lúc người dùng nhập dữ liệu bị sai?

    30. Để tạo nút lệnh thêm mới dữ liệu trong Form của Microsoft Access người ta chọn control nào?

    31. Parameter Query dùng để làm gì?

    32. Để chèn thêm một Website vào Form người ta dùng control nào?

    thầy tl giúp e đc ko.e cảm ơn nhìu ạ

  26. Toàn viết:

    ví dụ trong checkbox có nút phóng to và nút thu nhỏ thì ta làm ntn ạ

  27. Tuấn viết:

    em chào thầy thầy cho em hỏi e muốn đổ dữ liệu từ file access vào listbox thì phải viết code sao ạ

  28. Nghĩa viết:

    AI BIẾT LÀM BÀI NHƯ THẾ NÀY GIÚP EM VỚI Ạ
    Trong SQL Server cho sẵn một bảng cơ sở dữ liệu có tên
    “Nguoidung” gồm các thông tin cơ bản như sau: Tài khoản, mật
    khẩu, họ tên, ngày sinh. Anh/Chị hãy sử dụng ngôn ngữ C# và
    Windows Form lập trình viết một ví dụ minh họa thực hiện
    những công việc sau: – Thiết kế giao diện sử dụng các Controls có trong
    WindowForms cho phép người dùng thực hiện chức năng
    “Đăng Nhập” ( Yêu cầu: Vẽ hình minh họa – chỉ rõ tên các
    thành phần) – Viết đoạn lệnh để kết nối đến cơ sở dữ liệu đã có biết các
    thông tin cần thiết như sau: Tên máy chủ: “VNPT”, Tài
    khoản truy cập: “sa”, Mật khẩu truy cập đến cơ sở dữ liệu:
    “123456”. – Viết đoạn mã bắt sự kiện để khi người dùng “Click” vào
    nút “Đăng nhập” thì kiểm tra xem: nếu giá trị tài khoản,
    mật khẩu người dùng nhập vào giống với giá trị được lưu
    trong cơ sở dữ liệu, thì Xuất ra một cửa sổ thông báo
    “Đăng nhập thành công” Ngược lại xuất ra thông báo
    “Đăng nhập thất bại”

Trả lời

EnglishVietnamese