Trang 1 trên tổng số 4 123... Cuối cùngCuối cùng
Từ 1 tới 10 trên tổng số 37 kết quả

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

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

    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

  2. #2
    Ngày gia nhập
    02 2010
    Bài viết
    31

    bạn có thể share project này được không thak

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

    Để tối về mình up lên cho chứ h đang đi làm mà

    Đây là cái Project nè bạn. Dev 10.2.6 nhé bạn
    Attached Files Attached Files
    bongda24h.tv

  4. #4
    Ngày gia nhập
    04 2010
    Bài viết
    45

    bài viết của bạn rất bổ ích. cám ơn bạn rất nhiều!!!

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

    bạn viết vậy có thế người khác khó hiểu. Mình chỉ làm cách đơn giản thế này thôi. Kéo XtraTabControl thả vào form main (nếu chưa có trong thanh toolbox thì bạn add vào) trong nút gọi form ở thanh rb thì bạn code đoạn lệnh sau vào
    fr_DS_SV fr1 = new fr_DS_SV();
    fr1.MdiParent = this;
    fr1.Show();
    Vậy là được. Vì đa số các bạn chỉ dùng XtraTabControl để "bắt" form thôi
    Http://P2share.com. Knowledge Is Not Only My Own
    Y!h: coolboy_cantlove

  6. #6
    Ngày gia nhập
    04 2010
    Bài viết
    5

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

    Trích dẫn Nguyên bản được gửi bởi wait2011 Xem bài viết
    bạn viết vậy có thế người khác khó hiểu. Mình chỉ làm cách đơn giản thế này thôi. Kéo XtraTabControl thả vào form main (nếu chưa có trong thanh toolbox thì bạn add vào) trong nút gọi form ở thanh rb thì bạn code đoạn lệnh sau vào
    fr_DS_SV fr1 = new fr_DS_SV();
    fr1.MdiParent = this;
    fr1.Show();
    Vậy là được. Vì đa số các bạn chỉ dùng XtraTabControl để "bắt" form thôi
    Bạn dùng cách này để add User Control thử được không?

  7. #7
    Ngày gia nhập
    09 2011
    Bài viết
    13

    Bạn làm sao để add phần chọn giao diện vào ribbonPageGroup2 vậy ? Mình add nó chỉ ở trên góc phải của màn hình, dưới nút close thôi.

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

    Trích dẫn Nguyên bản được gửi bởi hdcong Xem bài viết
    Bạn làm sao để add phần chọn giao diện vào ribbonPageGroup2 vậy ? Mình add nó chỉ ở trên góc phải của màn hình, dưới nút close thôi.
    Mình dùng Gallary để add phần giao diện vào đó đó bạn
    bongda24h.tv

  9. #9
    Ngày gia nhập
    09 2011
    Bài viết
    13

    Bạn chỉ mình cách làm như vậy được không ?

  10. #10
    Ngày gia nhập
    12 2009
    Nơi ở
    []=[]eaven
    Bài viết
    22

    có cách nào làm cho nút close tab nằm sát bên phải của tab không.Mình thấy TabControl của DotNetBar làm được thế mà
    Không thương,không mến,không đau khổ
    Không buồn,không khóc, lệ không rơi
    Không yêu ai hết lòng rộng mở .
    Không nhớ ai cả hồn tự do...

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