2009-07-05 60 views
10

Cách tạo điều khiển tab với số lượng tab động trong Visual Studio C#?Tạo điều khiển tab với số lượng tab động trong Visual Studio C#

Tôi đã có cơ sở dữ liệu với một bảng customers. Tôi cần phải tạo một biểu mẫu sẽ hiển thị các tab với các chữ cái đầu tiên của họ của khách hàng (chỉ những chữ cái đầu tiên, trong đó có các mục nhập trong bảng nên có mặt). Mỗi tab phải chứa một điều khiển DataGrid với các khách hàng tương ứng. Tôi kết nối với cơ sở dữ liệu bằng cách sử dụng DataSet.

Tôi nên chèn đoạn mã nào sẽ tạo các tab như vậy ở đâu? Tôi có thể làm điều đó với điều khiển tab hiện tại hoặc tôi có nên tạo điều khiển tùy chỉnh không?

Trả lời

16

Bạn có thể tạo các tab động với TabControl hiện tại. Dưới đây là một ví dụ về cách nó có thể được thực hiện trong một loại hơi dạng mã giả ...

TabControl tabControl = new TabControl(); 
tabControl.Dock = DockStyle.Fill; 

foreach (Char c in lastNameList) 
{ 
    TabPage tabPage = new TabPage(); 
    tabPage.Text = c.ToString(); 

    DataGrid grid = new DataGrid(); 

    grid.Dock = DockStyle.Fill; 
    grid.DataSource = dataForTheCurrentLoop; 

    tabPage.Controls.Add(grid); 
    tabControl.Controls.Add(tabPage); 
} 

this.Controls.Add(tabControl); 
0

Có vẻ như tuyến đường tốt nhất cho bạn là tạo lớp điều khiển tab tùy chỉnh của riêng bạn. Nó có thể kế thừa từ kiểm soát tab cho phần lớn các chức năng và thuộc tính của nó cho datagrid và bất cứ điều gì khác tùy chỉnh mà bạn cần. Sau đó, khi bạn có được khách hàng của mình, bạn có thể tạo một tab cho mỗi chữ cái bạn cần và thiết lập các thuộc tính tương ứng.

2

Bạn sẽ thêm mã để tạo các tab nơi bạn xác định những chữ cái nào cần được hiển thị, có thể khi bạn truy xuất dữ liệu hoặc trong phương thức OnLoad() của biểu mẫu. Bạn sẽ có thể tự động thêm/xóa các tab từ điều khiển tab được tích hợp sẵn. Bạn có thể kiểm tra mã thiết kế để biết một số ý tưởng về cách thực hiện hoặc tài liệu.

Lưu ý rằng không nhất thiết phải thêm một tab riêng cho từng ký tự. 26 tab (điều này sẽ xảy ra khi cơ sở dữ liệu của bạn nhận được lượng lớn hợp lý) là số lượng tab khá lớn để người khác xem qua-- nó sẽ không nhất thiết làm mọi việc nhanh hơn chút nào.

Thay vào đó, hãy cân nhắc việc cung cấp cơ chế lọc động, tương tự như hộp tìm kiếm trên menu bắt đầu của Vista. Người dùng của bạn có thể nhập một ký tự đơn (giả sử bạn không viết một số loại kiosk hoặc phần mềm chỉ có màn hình cảm ứng) và thu phóng ngay lập tức đến các tên có liên quan. Điều này sẽ làm việc lý tưởng với một ListView trong chế độ Danh sách hoặc Chi tiết.

1

Tôi không nhớ các chi tiết cụ thể ngay bây giờ. Nhưng chỉ cần nhìn vào mã trong tệp XXX.designer.cs cho biểu mẫu mà bạn có chứa một điều khiển tab. Ở đó bạn sẽ thấy mã được tạo để thêm tab mới. Chỉ cần sao chép các dòng đó, bạn có thể thêm tab mới bất cứ khi nào bạn muốn.

Các vấn đề liên quan