Từ 1 tới 10 trên tổng số 40 kết quả

Đề tài: Hướng dẫn AddTab con (động) vào XtraTabControl trong DevExpress

Threaded View

  1. #1
    Ngày gia nhập
    03 2011
    Bài viết
    467

    Mặc định Hướng dẫn AddTab con (động) vào XtraTabControl trong DevExpress

    Xin chào các bạn!!
    Mai thứ 7 làm nghỉ sớm nên hôm nay ngồi mò lại cái code mình code cũng lâu rồi (Tìm tòi mãi đấy nhé)
    Vì thấy có một số bạn muốn Add tab lên Tabcontrol mà không hiểu hoặc không biết cách add
    Bài viết này mình viết có 1 số chỗ hơi "gà" mong các bạn đừng chê nhé.(tâm huyết lắm đấy).

    Bắt đầu.
    - Đầu tiên. Mình tạo ra một Project dạng Library để xây dựng hàm AddTab và Build nó thành File . DLL để sử dụng ở nhiều Project khác nhau (hình 1).

    - Trong đó mình viết Hàm AddTab này. Code đây có Comment đọc dễ hiểu nhé
    Visual C# Code:
    1. using System;
    2. using System.Collections.Generic;
    3. using System.Linq;
    4. using System.Text;
    5. using System.Windows.Forms;
    6. using System.Windows.Forms.VisualStyles;
    7. using System.Windows.Forms.Layout;
    8. using DevExpress.XtraEditors;
    9. using System.Drawing;
    10. namespace AddTab
    11. {
    12.     public class TabAdd
    13.  
    14.   {        // Xây dựng hàm dùng để add XtratabPage và XtraTabcontrol (Hàm này đặt trong Project có dạng Library để Build thành file .dll . Mục đích : viết 1 lần nhưng sử dụng cho nhiều Project khác nhau)
    15.             // Sử dụng 4 đối số truyền vào cho hàm này gồm có:
    16.             //1> DevExpress.XtraTab.XtraTabControl XtraTabCha : Tạm gọi là Tab Cha vì XtraTabControl này để mình quăng tabcon vào
    17.             //2> string icon : Khi add Tab con vào Tab cha thì đối số này để quy định icon hình cho tabCon(XtraTabpage)
    18.             //3> string TabNameAdd : Khi add tab con vào thì đối số này quy định tên của Tabcon vừa Add vào đó.
    19.             //4> System.Windows.Forms.UserControl UserControl: Cái này dùng để Add cái UserControl do ta tạo vào Tabcon
    20.            // Đướng đi: Khi gọi hàm này phải truyền vào 4 đối số để biết:
    21.                             //Anh muốn add 1 cái Tab con vào cái tab Cha nào?
    22.                             // Anh muốn đặt tên Tab con đó tên là gì?
    23.                             // anh muốn cái Tab con khi add vào thì Icon của nó là gì?
    24.                             // Anh muốn đặt cái gì vào trong cái Tab Con đó trước khi quăng nó lên TAb Cha?
    25.             // Note : Các bạn có thể tùy biến nhiều đối số khác nữa nhé.
    26.         public void AddTab(DevExpress.XtraTab.XtraTabControl XtraTabCha,string icon,string TabNameAdd,System.Windows.Forms.UserControl UserControl )
    27.         {
    28.             // Khởi tạo 1 Tab Con (XtraTabPage)
    29.         DevExpress.XtraTab.XtraTabPage TAbAdd =new DevExpress.XtraTab.XtraTabPage();
    30.             // Đặt đại cái tên cho nó là TestTab (Đây là tên nhé)
    31.         TAbAdd.Name = "TestTab";
    32.             // Tên của nó là đối số như đã nói ở trên
    33.         TAbAdd.Text = TabNameAdd;
    34.         // Add đối số UserControl vào Tab con vừa khởi tạo ở trên
    35.         TAbAdd.Controls.Add(UserControl);
    36.             // Dock cho nó tràn hết TAb con đó
    37.         UserControl.Dock = DockStyle.Fill;
    38.         try
    39.         {
    40.             // Icon của Tab con khi add vào Tab cha sẽ được quy định ở đây(cái này các bác tự chọn đường dẫn đến file Icon đó nhé)
    41.             TAbAdd.Image = System.Drawing.Bitmap.FromFile(System.Windows.Forms.Application.StartupPath.ToString() + @"\Icons\" + icon);
    42.  
    43.         }
    44.         catch (Exception e)
    45.         {
    46.         }
    47.         // Quăng nó lên TAb Cha (XtraTabCha là đối số thứ nhất như đã nói ở trên)
    48.         XtraTabCha.TabPages.Add(TAbAdd);
    49.         }
    50.     }
    51. }

    - Sau đó Build nó để lấy được File .DLL nhé.

    Vậy là xây dựng xong .DLL để AddTab con lên tab cha khá đơn giản
    - Tiếp tục ta sẽ tạo ra 1 Project khác gồm có 1 RibbonForm, 1 thư mục để chứa UserControl (như trong hình 2)

    - Ta đã có File DLL để AddTab vậy thì ta add referen đến File DLL đó nhé.
    - Tiếp đến tạo 2 UserControl trên là SinhVien và Lop đặt trong thư mục Usercontrol . Kéo đại vài Control vào 2 cái UserControl đó.
    - Trên Ribbon Form Tạo ra 2 Button tên là Sinh Vien và Lop để khi bấm vào nó thì Add Tab con chứa User control lên TAb Cha (TabMain)
    - Kéo XtraTAbControl bên Toolbox vào (ở đây mình đătj tên cho nó là XtraTabControl1 @@, Nhớ Dock nó = Fill nhé)
    - Khởi tạo Class AddTab
    Visual C# Code:
    1. AddTab.TabAdd clsAddTab = new TabAdd(); //Chuẩn bị lấy cái DLL xài nè:D
    - Trong sự kiện Click của Button thứ nhất Code như sau:
    Visual C# Code:
    1. private void barButtonItem1_ItemClick(object sender, ItemClickEventArgs e)
    2.         {
    3.             // Kiểm tra khi bấm nút Sinh Viên: Nếu đã có TAb này rồi thì không Add vào nữa
    4.             // mà nó sẽ chuyển focus tới TAb Sinh Viên này
    5.             int t=0;
    6.             foreach (DevExpress.XtraTab.XtraTabPage tab in xtraTabControl1.TabPages )
    7.             {
    8.             if (tab.Text=="Sinh Viên")
    9.             {
    10.                 xtraTabControl1.SelectedTabPage   = tab;
    11.             t=1;
    12.             }
    13.             }
    14.             if (t==1)
    15.             {
    16.            
    17.             }
    18.             else
    19.             {// Nếu chưa có TAb này thì gọi hàm Addtab xây dựng ở trên để Add Tab con vào
    20.                 clsAddTab.AddTab(xtraTabControl1,"","Sinh Viên",new SinhVien() );
    21.             }
    22.            
    23.         }
    - Tương tự ở Button thứ 2 nhé.
    + Bây giờ ta tạo ra cái Button trên XtraTabControl để khi bấm vào nó thì xóa cái Tab con đang focus ra khỏi Tab cha(Hinh 3)

    - Mở Code trong File Design Của cái Ribbon Form , tìm đến chỗ mà nó khởi tạo ra cái TabMain đó.
    Visual C# Code:
    1. // xtraTabControl1
    2.             //
    3.             this.xtraTabControl1.Dock = System.Windows.Forms.DockStyle.Fill;
    4. // Viết thêm cái dòng này để tạo ra cái button header đó
    5.             this.xtraTabControl1.HeaderButtons = DevExpress.XtraTab.TabButtons.Close;
    6. // them dong nay de cai nut do xuat hien o tat ca cac tab
    7.             xtraTabControl1.ClosePageButtonShowMode = DevExpress.XtraTab.ClosePageButtonShowMode.InAllTabPagesAndTabControlHeader;
    8.             this.xtraTabControl1.Location = new System.Drawing.Point(0, 145);
    9.             this.xtraTabControl1.Name = "xtraTabControl1";
    10.             this.xtraTabControl1.Size = new System.Drawing.Size(790, 423);
    11.             this.xtraTabControl1.TabIndex = 2;
    12.             this.xtraTabControl1.ControlAdded += new System.Windows.Forms.ControlEventHandler(this.xtraTabControl1_ControlAdded);
    13. // Đăng kí sự kiện cho cái Button Header đó.
    14.             this.xtraTabControl1.CloseButtonClick += new System.EventHandler(this.xtraTabControl1_CloseButtonClick);
    15.             //
    Và đây là Sự kiện khi Click vào Button đó.
    Visual C# Code:
    1. private void xtraTabControl1_CloseButtonClick(object sender, EventArgs e)
    2.         {// dong tab
    3.             DevExpress.XtraTab.XtraTabControl tabControl = sender as DevExpress.XtraTab.XtraTabControl;
    4.             DevExpress.XtraTab.ViewInfo.ClosePageButtonEventArgs arg = e as DevExpress.XtraTab.ViewInfo.ClosePageButtonEventArgs;
    5.             (arg.Page as DevExpress.XtraTab.XtraTabPage).Dispose();
    6.         }
    - Add thêm sự kiện ControlAdded của cái Tabmain để Khi add tab con vào thì nó focus tới Tab con đó
    Visual C# Code:
    1. private void xtraTabControl1_ControlAdded(object sender, ControlEventArgs e)
    2.         {// Khi add vào thì Focus tới ngay Tab vừa Add
    3.             xtraTabControl1.SelectedTabPageIndex = xtraTabControl1.TabPages.Count - 1;
    4.         }
    - Hưởng thành quả thôi (hinh 4)

    *Note: Bài viết này dành cho các bạn còn thắc mắc về Add tab cơ bản như thế nào. 12h rồi kìa.
    Chúc các bạn sức khỏe!!!
    Attached Thumbnails Attached Thumbnails Addtab.JPG   Project2.JPG   HeaderButton.JPG   ThanhQua.JPG  
    Đã được chỉnh sửa lần cuối bởi elkidvnn1 : 21-11-2012 lúc 01:46 PM. Lý do: Tắt TAb một cách động
    bongda24h.tv

Các đề tài tương tự

  1. Sử dụng XtraTabControl,XtraUserControl, Thay thế MDI Form với DevExpress
    Gửi bởi elkidvnn1 trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 6
    Bài viết cuối: 04-05-2014, 06:11 PM
  2. ADO.NET Cách nào tạo nút close trong Xtratabcontrol DevExpress?
    Gửi bởi NguyenDuyPC trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 2
    Bài viết cuối: 04-05-2013, 09:53 AM
  3. Cách add usercontrol vào giữa xtratabcontrol trong devexpress c#?
    Gửi bởi hungvboys trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 7
    Bài viết cuối: 06-02-2013, 10:34 PM
  4. DEVEXPRESS EBOOK professiona devexpress asp dot net controls
    Gửi bởi ammayngu91 trong diễn đàn Software (Phần mềm) | Ebooks
    Trả lời: 1
    Bài viết cuối: 09-09-2011, 10:38 PM
  5. lỗi: You have installed DevExpress Products in Evaluation trong devexpress asp.net?
    Gửi bởi boystock trong diễn đàn Thắc mắc lập trình ASP.NET
    Trả lời: 3
    Bài viết cuối: 05-04-2011, 07:15 PM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn