Giới thiệu thông tin cá nhân – C#

Xây dựng một chương trình Winform – C# điền thông tin cá nhân như trong hình minh họa bên dưới. Yêu cầu:


  • Người dùng nhập thông tin cá nhân: Họ tên, Giới tính, Ngày sinh, Môn học yêu thích
  • Khi nhập họ tên vào textbox thì họ tên cũng được hiện thị ở nhãn phía trên ảnh
  • Khi kích hộp lựa chọn Môn học khác thì textbox bên dưới mới cho phép nhập văn bản
  • Bấm nút Chọn ảnh… thì cho phép người dùng chọn một ảnh đại diện từ máy tính. Ảnh sẽ được hiển thị ở khung ảnh trên form
  • Bấm nút Cập nhật thì các thông tin của người dùng sẽ được hiển thị trong hộp hiện thị thông tin ở cuối form
  • Khi kích vào hộp hiển thị thông tin, thì văn bản trong hộp sẽ chuyển động cuộn sang trái. Khi văn bản đang chuyển động, kích vào hộp thì văn bản ngừng chuyển động

Hướng dẫn:

Trình tự thực hiện:

1. Tạo mới một project loại Windows Application

2. Theo mặc định, một lớp Form1 được sinh ra. Chỉnh sửa các thuộc tính của Form1 với các giá trị như trong bảng dưới đây:

Thuộc tính Giá trị Ghi chú
Name FormMain
Text Hello WinForms Tiêu đề cửa sổ
FormBorderStyle FixedSingle Kích thước của cửa sổ sẽ không được thay đổi khi chạy chương trình
MaximizeBox False Vô hiệu hóa nút Maximize của cửa sổ

3. Thiết kế giao diện của form như trong hình minh họa bên dưới. Lưu ý, với mỗi điều khiển bạn đưa vào form, nếu dự định truy xuất nó trong phần mã nguồn khi lập trình thì hãy đặt tên nó thay vì để như tên mặc định.

Chỉnh sửa thuộc tính của một số đối tượng theo bảng sau:

Thuộc tính Giá trị Ghi chú
dtpDOB Format Custom
CustomFormat dd/MM/yyyy
txtOther Enable False
lblInfo AutoSize False
BorderStyle Fixed3D
Font Chọn font thích hợp, in đậm
picImage SizeMode StretchImage
lblName BackColor Transparent (Web)
tmrScroll Interval 120

4. Cài đặt phần mã lệnh cho sự kiện Click của nút bấm btnSelect như sau:

private void btnSelect_Click(object sender, EventArgs e)
{
    OpenFileDialog dlgOpen = new OpenFileDialog();
    dlgOpen.Filter = "Tập tin ảnh|*.bmp;*.jpg;*.gif|File tùy ý (*.*)|*.*";
    if (dlgOpen.ShowDialog(this) == DialogResult.OK)
    {
        try
        {
            picImage.Image = Image.FromFile(dlgOpen.FileName);
        }
        catch (Exception exc)
        {
            MessageBox.Show(String.Format("Không thể nạp file ảnh [{0}]", dlgOpen.FileName));
        }
    }
}

Khi người sử dụng nhấn vào nút này, một hộp thoại sẽ hiện ra cho phép chọn ảnh. Chỉ các tập tin có phần mở rộng là BMP, JPG, GIF mới được hiển thị để lựa chọn. Điều này được thiết lập thông qua thuộc tính Filter của đối tượng dlgOpen (thuộc lớp OpenFileDialog).

5. Khi người sử dụng gõ tên của họ vào txtName thì nội dung của lblName cũng thay đổi theo. Muốn vậy, ta cài đặt mã lệnh cho sự kiện TextChanged của txtName như sau:

        private void txtName_TextChanged(object sender, EventArgs e)
        {
            lblName.Text = txtName.Text;
        }

6. Đối tượng txtOther chỉ được sử dụng (Enabled) khi mà chkOther được check vào, do đó ta cũng cài đặt mã lệnh cho sự kiện CheckChanged của chkOther như sau

        private void chkOther_CheckedChanged(object sender, EventArgs e)
        {
            txtOther.Enabled = chkOther.Checked;
        }

7. Khi nhấn nút “Cập nhật” thì nội dung của lblInfo được cập nhật theo như phần mã lệnh cài đặt cho sự kiện Click của btnApply

        private void btnApply_Click(object sender, EventArgs e)
        {
            lblInfo.Text = (chkIsMale.Checked ? "Anh " : "Chị ") + txtName.Text + ". Môn học yêu thích: ";
            if (chkOOP.Checked)
                lblInfo.Text += " " + chkOOP.Text + ", ";
            if (chkAP.Checked)
                lblInfo.Text += " " + chkAP.Text + ", ";
            if (chkSAD.Checked)
                lblInfo.Text += " " + chkSAD.Text + ", ";
            if (chkOther.Checked&&txtOther.Text.Trim()!="")
                lblInfo.Text += " " + txtOther.Text + ", ";
        }

8. Để cuộn nội dung dòng chữ, cài đặt mã lệnh cho sự kiện Tick của tmrScroll như sau:

        private void tmrScroll_Tick(object sender, EventArgs e)
        {
            lblInfo.Text = lblInfo.Text.Substring(1) + lblInfo.Text.Substring(0, 1);
        }

9. Người sử dụng có thể bật tắt chế độ cuộn nội dung dòng chữ lblInfo bằng cách nhấn chuột vào nó. Cài đặt mã lệnh cho sự kiện Click của lblInfo như sau:

        private void lblInfo_Click(object sender, EventArgs e)
        {
            tmrScroll.Enabled = !tmrScroll.Enabled;
        }

10. Nhấn Ctrl + S để lưu nội dung project. Chạy chương trình và quan sát kết quả.

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *