30/09/2018, 16:44

[Hỏi] Thiết kế nút close, minimize/maximize, hide cho winform

Chào các bạn. Mình đang bắt đầu chuyển qua lập trình trên Windows. Mình muốn thiết kê 3 nút close, minimize/maximize, hide thành 3 nút tròn giống trên mac thì phải làm như thế nào? Mình đã search google nhưng vẫn chưa hiểu.

Nguyễn Minh Dũng viết 18:46 ngày 30/09/2018

Làm cái này cực à. Không biết Windows có cho phép làm hay không thôi. Toàn đang dùng Visual C++ hay C#?

X viết 18:50 ngày 30/09/2018

không quá chuyên về C# nhưng mình từng thử với đồ án đầu tiên (đơn giản). Cho FormBorderStyle là NONE rồi làm các button
close thì dùng close();
mini thì this.WindowState = FormWindowState.Minimized;
vụ này chắc @tuancoi2506 rành :))

Nguyễn Minh Dũng viết 18:50 ngày 30/09/2018

Còn code không Huy? Share đoạn code cần thiết cho @Nobitoan xem thử

X viết 18:47 ngày 30/09/2018

Còn code không Huy? Share đoạn code cần thiết cho @Nobitoan xem thử

hồi đấy làm trên winform nên cũng không có gì ghê gớm, Chỉ là 2 button
close thì dùng câu đơn giản MainForm.ActiveForm.Close();
mini thì this.WindowState = FormWindowState.Minimized;

Nguyễn Minh Dũng viết 18:45 ngày 30/09/2018

Có nghĩa là mình vẽ lại rồi add control mới đặt ở phía bên trái thôi đúng không?

X viết 18:46 ngày 30/09/2018

đúng rồi anh nhưng trong hình của e cầm chuột kéo qua cái rột là được

Lập Trình Sư viết 18:54 ngày 30/09/2018

Cái trải nghiệm người dùng trên Windows khác với OS X. Nói chung không nên làm như thế. Còn muốn tìm hiểu thôi thì concept cũng đơn giản thôi mà.

  • Chuyển thành form borderless
  • Tạo một cái UserControl, bên trong gắp vào 1 cái panel ngang full 100%, và nhét vô bên trái 3 nút tương ứng (Close, Min, Max)
  • Tạo event cho 3 nút ở trên cái UserControl trên, sau đó delegate cái event ra bên ngoài (cái này để tương tác với parent)
  • Trong Form đang xử lý, drag cái code (file .cs) của cái UserControl vô trong cái thanh thiết kế chứa các control kéo thả. Rồi kéo cái vừa thiết kế ở trên vô Form.
  • Xử lý thêm event nếu cần thiết.
  • Xử lý thêm các sự kiện khác như giữ chuột trái và di (MouseMove…) thì là di chuyển form chẳng hạn…

Không có Windows nên chả code , bạn tự mò thêm nhé.

X viết 18:45 ngày 30/09/2018

Xử lý thêm các sự kiện khác như giữ chuột trái và di (MouseMove…) thì là di chuyển form chẳng hạn…

à quên mất cái này =)) không thì chẳng di chuyển được form

Phạm Hoàng Tuấn viết 18:44 ngày 30/09/2018

Bổ sung thêm 1 chút các ý ở trên, như a @laptrinhio nói, trong usercontrol, 2 nút đó bạn dùng là 3 picturebox, lên mạng lấy 3 cái hình màu xanh đỏ vàng tương ứng với 3 nút close, minimize/maximize trên MAC OS, tìm icon cho nhanh, nhét 3 cái icon đó vào 3 picture box. Vậy là sẽ có giao diện như trên MAC

Nobitoan viết 18:59 ngày 30/09/2018

Em đang viết bằng C# anh @ltd

Nguyễn Minh Dũng viết 18:51 ngày 30/09/2018

Vậy follow các hướng dẫn ở trên là được rồi

King Dark viết 19:00 ngày 30/09/2018

Chủ tops thử đọc qua bài này nhé!!

http://kingdark.org/bai-viet/17-04-2015/tuy-bien-giao-dien-cho-ung-dung-viet-bang-c-windows-form-application.html

Bài liên quan
0