Sử dụng TabControl làm khung chính với 2 Tab:
Tab 1: Đăng ký mới
GroupBox "Thông tin cá nhân":
TextBox: Họ tên (txtHoTen), Số điện thoại (txtSDT), Email (txtEmail).
DateTimePicker: Ngày sinh (dtpNgaySinh). Format ngày sinh dạng dd/MM/yyyy
Panel chứa 2 RadioButton: Nam (radNam), Nữ (radNu).
GroupBox "Thông tin khóa học":
ComboBox: Ngành học (cboNganhHoc). Thêm sẵn các Item: Lập trình di động, Lập trình web, Khai phá dữ liệu, Đồ họa đa phương tiện. Chỉ cho người dùng chọn trong danh sách (DropDownStyle: DropDownList ).
CheckedListBox: Các môn kỹ năng bổ trợ (clbKyNang): Tiếng Anh chuyên ngành, Kỹ năng thuyết trình, Tư duy logic, Git/Github.
NumericUpDown: Thời gian học (tháng) (numThoiGian). Range: 1 - 24.
GroupBox "Ưu đãi & Mã giảm giá":
3 CheckBox (chkSinhVien, chkNguoiDiLam, chkHocSinh): Tương ứng mức giảm 10%, 5%, 15%. (Lưu ý: Chỉ cho phép chọn 1 loại đối tượng tại một thời điểm - xử lý bằng code).
DomainUpDown: Mã ưu đãi đặc biệt (dudMaGiamGia): KM2024, TANTHU, CHUYENCAN.
Nút lệnh: btnDangKy, btnLamMoi.
Tab 2: Danh sách học viên
DataGridView (dgvDanhSach): Hiển thị các cột: STT, Họ tên, SDT, Ngành học, Tổng học phí, Ngày đăng ký.
Nút lệnh: btnXoa, btnXuatFile.
Xử lý Ràng buộc đối tượng (CheckBox):
Viết sự kiện CheckedChanged sao cho khi chọn CheckBox này thì tự động bỏ chọn CheckBox kia (mô phỏng RadioButton nhưng dùng CheckBox để luyện tập xử lý sự kiện).
Tính toán học phí (Sự kiện Click Đăng ký):
Học phí gốc: Quy định mức giá sàn là 2.000.000 VNĐ/tháng.
Công thức: Tổng = (Số tháng* Đơn giá) - Giảm giá.
Giảm giá: Tính dựa trên CheckBox đối tượng đã chọn (10%, 5% hoặc 15%).
Kiểm tra nhập liệu: Không được để trống Họ tên, SDT và phải chọn Ngành học.
Cộng thêm phí (giả sử mỗi kỹ năng bổ trợ có phí cố định là 500.000 VNĐ).
Quản lý dữ liệu:
Khi nhấn "Đăng ký", dữ liệu từ Tab 1 phải được đẩy sang DataGridView ở Tab 2.
Hiển thị thông báo MessageBox xác nhận đăng ký thành công.
Làm mới: Nút "Làm mới" sẽ đưa tất cả Control về trạng thái trống/mặc định.