Rất nhiều cách để thực hiện. Tạo một biểu mẫu cho từng bước của trình hướng dẫn là có thể, nhưng rất khó xử. Và xấu xí, rất nhiều nhấp nháy khi người dùng thay đổi bước. Thực hiện từng bước mà UserControl có thể hoạt động, bạn chỉ cần chuyển chúng vào và ra khỏi bộ sưu tập Điều khiển của biểu mẫu. Hoặc làm cho một trong số họ Hiển thị = true cho mỗi bước. Tuy nhiên, thiết kế UC có xu hướng bị phức tạp, bạn phải thêm các thuộc tính công cộng cho từng mục giao diện người dùng.
Cách dễ dàng và RAD là sử dụng TabControl. Hoạt động rất tốt trong nhà thiết kế vì nó cho phép bạn chuyển đổi các tab ở thời gian thiết kế và thả các điều khiển trên mỗi tab. Chuyển đổi các bước là tầm thường, chỉ cần thay đổi thuộc tính SelectedIndex. Điều duy nhất không tầm thường là ẩn các tab trong thời gian chạy. Vẫn dễ thực hiện bằng cách xử lý tin nhắn Windows. Thêm một lớp mới vào biểu mẫu của bạn và dán mã được hiển thị bên dưới. Biên dịch. Thả điều khiển mới từ đầu hộp công cụ lên biểu mẫu của bạn.
using System;
using System.Windows.Forms;
class WizardPages : TabControl {
protected override void WndProc(ref Message m) {
// Hide tabs by trapping the TCM_ADJUSTRECT message
if (m.Msg == 0x1328 && !DesignMode) m.Result = (IntPtr)1;
else base.WndProc(ref m);
}
}
Nguồn
2010-02-26 14:40:04
Nó rất hữu ích để kết hợp hình thức cơ bản (được đề xuất ở đây) + điều khiển tab tùy chỉnh (được mô tả trong câu trả lời khác). Việc tạo nền tảng cho trình thuật sĩ rất hữu ích, đặc biệt khi ứng dụng có nhiều hơn một trình hướng dẫn. Nó giúp tránh việc sao chép mã hóa kinh dị. – miroxlav
Các phương thức hữu dụng mà tôi thường thực hiện trong lớp cơ sở là .. 'OnPageEntered', 'OnPageExited',' AllowNext', 'AllowBack', vv – KDecker