Hỏi cách 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.

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#?

1 Like

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 :joy:
close thì dùng close();
mini thì this.WindowState = FormWindowState.Minimized;
vụ này chắc @tuancoi2506 rành :))

4 Likes

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

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

3 Likes

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?

1 Like

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

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 :smile:, bạn tự mò thêm nhé.

6 Likes

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

2 Likes

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

2 Likes

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

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

1 Like

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

1 Like
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?