Hierarchila tabstrip

20 posts, 0 answers
  1. Mukunda Manoj
    Mukunda Manoj avatar
    35 posts
    Member since:
    Apr 2006

    Posted 28 Nov 2006 Link to this post

    Is it possible to have a hierarchial Tabstrip for winforms, similar to asp.net tabstrip?
  2. Chris
    Admin
    Chris avatar
    221 posts

    Posted 28 Nov 2006 Link to this post

    Hi Mukunda,
    Currently this behavior is achievable only by nesting TabStrips. You can't create a hierarchical TabStrip using one TabStrip only. Could you please give us some more details about the application in which you would like to use a hierarchical TabStrip control? Would you like to use databinding to build the TabStrip structure or you would like to build the whole TabStrip manually (in design-mode or using code)?

    Best wishes,
    Chris
    the telerik team
  3. UI for WinForms is Visual Studio 2017 Ready
  4. Mukunda Manoj
    Mukunda Manoj avatar
    35 posts
    Member since:
    Apr 2006

    Posted 28 Nov 2006 Link to this post

    I need to build a Tabstrip which would be same as in the following example, but for windows forms.
    http://www.telerik.com/demos/aspnet/TabStrip/Examples/Programming/HierarchicalBinding/DefaultCS.aspx

    I need to build the TabStrip structure using databinding[not design mode].

    I've a dropdown, when selected the tabstrip is populated. The tabstrip might have upto 3 levels and in some cases, just a single level.
    When a tab in tabstrip is clicked, i need to populate a grid below the tabstrip.

    Any example would be of great help as i'm new to win forms.

    Thanks
    Mukunda.
  5. Chris
    Admin
    Chris avatar
    221 posts

    Posted 01 Dec 2006 Link to this post

    Hi Mukunda,
    I'm sorry for the late reply. I've prepared a sample application which reads hierarchical data from an .xml file which has the following structure:
    <Tabs>
        <Tab Text="Tab1">
            <Tabs>
                <Tab Text="Tab1.1" />
                ...


    and builds nested tabstrips which look like this:


    You could use the same approach if you would like to populate the tabstrip control using a DataSet for example.
    I hope this information helps.

    Best wishes,
    Chris
    the telerik team
  6. Mukunda Manoj
    Mukunda Manoj avatar
    35 posts
    Member since:
    Apr 2006

    Posted 06 Dec 2006 Link to this post

    Chris,

    When i set the AutoSize property of the TabStrip and run the application(HierarchicalTabStrip), i get the following error.

    Application has generated an exception that could not be handled.
    Process ID=0x3f4(1012). blah blah
    Click OK to Terminate the application.
    Click CANCEL to debug the application.

    If i set the autosize to false, it works.
    If i set autosize to true and close Visual Studio and try to open the project, i cannot open the form. The studio closes and opens again.

    With EnableTabControlMode=False and Autosize=True, application works fine, but only the first level of Tabs are seen.
    1.) Is the Combination of EnableTabControlMode=true and Autosize=True
    not supposed to be used?

    Also, i need to fire an event when a tab is clicked.
    [I was using TabCLick event of RadTabstrip in a web application]
    There are 3 events which look confusing -- Click, MouseClick, TabSelected.
    2.) Whats the diff between the above 3 events and which is more relevant to me [to have functionality similar to TabClick in a web application]?

    3.) Is hierarchial RadTabstrip achievable in winforms, similar to that in Web, instead of adding another tabstrip to the contentpanel of the tabitem?
    If so, is that going to be included in the future releases?
    In current scenario, i have to add Sub-TabStrips manually and also attach the click event for the newly created Sub/Child-TabStrips to the same as Parent Tabstrip.
    It would be better to have a single datasource binded to the control which manages relationships between child and parents as in RadTabStrip of web.

    Regarding my application, each tab in the hierarchial TabStrip will be having its own description(readonly or Label) and Details(RichTextBox).
    As i keep switching(selecting) the tabs, the selected tabs Description and details need to be displayed.
    I guess my case doesn't need a content panel.

    Can you please suggest me which would be a better way to achieve the functionality i need.

    Thanks in advance,
    Mukunda
  7. Chris
    Admin
    Chris avatar
    221 posts

    Posted 06 Dec 2006 Link to this post

    Hello Mukunda,
    1) Yes, when the TabControlMode is enabled, setting the AutoSize mode to "true" should not have any effect. We couldn't reproduce locally the problem which you described when both properties are set to true but we'll test this case more carefully.
    Btw, even though the AutoSize is set to false you could still dock and anchor the TabStrip control. Could you give us more details about your scenario?

    2) Both Click and MouseClick events are inherited from the base System.Windows.Form.Control class. The MouseClick event is fired only when the click action is caused by clicking with the mouse and the Click event could be fired by other actions (button clicking, causing a click action programmatically, etc).
    You could either handle the Click event of the tab items or you could handle the TabStrip.TabSelected event which is fired when the selected tab has been changed (either by clicking on it or programmatically).

    3) Yes, true hierarchical TabStrip functionality is definitely on our TODO list for the next releases.

    Best wishes,
    Chris
    the telerik team
  8. Mukunda Manoj
    Mukunda Manoj avatar
    35 posts
    Member since:
    Apr 2006

    Posted 06 Dec 2006 Link to this post

    Thanks for the quick reply.
    I took the HierarchicalTabStrip application attached by you, opened the form and set the AutoSize property of TabStrip to true and ran the application. Then i saw the error i mentioned in point 1.
    I need to check the same on some other machines, if this has something to do with my studio installation/ machine settings/?.

    When can i expect the hierarchical tabstrip?
    If this is to be in next quarters release, it would be of great help for me.

    The support provided by Teleik is great.
  9. Chris
    Admin
    Chris avatar
    221 posts

    Posted 06 Dec 2006 Link to this post

    Hi Mukunda,
    I'm not quite sure whether the problem is on your side and whether it's connected with your VS settings. We'll test it thoroughly locally and if the problem is with our controls we'll provide a hotfix.
    As for the hierarchical tabstrip control - we're planning to release it in Q1 2007.

    Greetings,
    Chris
    the telerik team
  10. Mukunda Manoj
    Mukunda Manoj avatar
    35 posts
    Member since:
    Apr 2006

    Posted 07 Dec 2006 Link to this post

    I tried in 3 different machines other than mine and had seen the same error whenever i specify the Autosize=True.
    The version i was using is RadControlsWinforms_1_0_trial.exe that i downloaded on 22 nov.
  11. Chris
    Admin
    Chris avatar
    221 posts

    Posted 08 Dec 2006 Link to this post

    Hello Mukunda,
    We managed to reproduce the problem and it will be fixed in the upcoming Q4 release (which is scheduled for the 20th of December).
    Thanks for helping us improve our products.
    I've just updated your telerik points.

    Kind regards,
    Chris
    the telerik team
  12. Mukunda Manoj
    Mukunda Manoj avatar
    35 posts
    Member since:
    Apr 2006

    Posted 11 Jan 2007 Link to this post

    When is the tabstrip with hierarchical functionality going to be released?
  13. Vassil Petev
    Admin
    Vassil Petev avatar
    1765 posts

    Posted 11 Jan 2007 Link to this post

    Hi Mukunda,

    We will have a ready to use hierarchy example in the Q1 release, due in March. Otherwise the problem mentioned below has already been fixed in the Q4 release (December 2006). Let us know if you have other questions.


    Sincerely yours,
    Rob
    the telerik team
  14. Vadlamudi VenuGopal
    Vadlamudi VenuGopal avatar
    1 posts
    Member since:
    Feb 2006

    Posted 12 Jan 2007 Link to this post

    1.) I cannot know which tab has been selected (visually).
    Say, in below screenShot, i cannot say if Tab1 or Tab1.3 or Tab1.3.1 has been selected. Is it possible to have some different style for current selected tab?

    2.) Is it possible to show certain tabs with a different style than the others.
    [The tabs are from database and and have a flag associated with them. If flag=0, i need to have style1 and if flag=1 then style2 for the tabs.]
  15. Mike
    Admin
    Mike avatar
    640 posts

    Posted 12 Jan 2007 Link to this post

    Hi Vadlamudi,

    All of our predefined themes have specified different style for selected tab items than the rest of the items. If you are creating a theme from scratch, you should use the RadTabStripElement.IsSelected property when creating a state (style-group) for the item. Although you could start creating a theme from scratch, we recommend you to start with some of the existing themes. Please let us know if you need any further assistance on the subject.
    As a matter of fact I think it would be better if you use a different approach for customization. Since your application needs almost different style for each TabItem, you can consider creating the visual style using code-behind, setting the corresponding properties of each TabItem, as required. The properties you should use, can be referenced as follows:

    FillPrimitive fill = (FillPrimitive)new ClassSelector("TabFill").GetSelectedElements(this)[0];

    (The FillPrimitive class exists within the Telerik.WinControls.Primitives namespace).
    Once you have a reference to the "fill" element, you can apply quite deep customization, playing with its properties:

    fill.NumberofColors = 4;
    fill.BackColor2
    fill.BackColor3
    fill.BackColor4
    fill.GradientAngle  and so on.

    Please, let me know if this works fine for you.

    Best wishes,
    Mike
    the telerik team
  16. Mukunda Manoj
    Mukunda Manoj avatar
    35 posts
    Member since:
    Apr 2006

    Posted 22 Jan 2007 Link to this post

    If i set AutoSize=true, the tabstrip disappears from the designer and also it is not seen in run mode(The Minsize was 0,0). When some min size is set, the tabstrip appears and it doesn't seem to resizing. It always has the min size only.
    Is the resize property of tabstrip associated just with tabs and not the content panel??

    How can i remove the background color and border color of the content panel, so that it looks more like a hierarchical tabstrip similar to the web based one?
  17. Mike
    Admin
    Mike avatar
    640 posts

    Posted 22 Jan 2007 Link to this post

    Hi Mukunda,

    The RadTabStrip control is currently not able to determine its size by setting the autosize property to true. If you need to set its exact size, set AutoSize to false.

    As to customizing the tabstrip looks, here is the modified sample, with hidden tab-content borders and fill. The main modifications are as follows:
     
    //Make content invisible and collapse its border to achieve hierarchy effect  
    FillPrimitive tabBaseFill = (FillPrimitive)new ClassSelector("TabBaseFill").GetSelectedElements(tabStrip.TabStripElement)[0];  
    tabBaseFill.ShouldPaint = false;  
     
    BorderPrimitive border = (BorderPrimitive)new ClassSelector("TabBaseBorder").GetSelectedElements(tabStrip.TabStripElement)[0];  
    border.Visibility = ElementVisibility.Collapsed; 

    We also set explicitly the theme name of the main tabstrip, to avoid overwriting of the present border and fill property values when the theme loads.
     

    Regards,
    Mike
    the telerik team
  18. Mukunda Manoj
    Mukunda Manoj avatar
    35 posts
    Member since:
    Apr 2006

    Posted 27 Mar 2007 Link to this post

    How can i iterate through the tabs from child to a parent.
    If i click Tab1.3.1, i would like to get a reference to its parent Tab, 
    Tab 1.3 and then its parent Tab1.

    I was trying for some custom styling for the tab structure and need to traverse from child to parent and vice versa.
  19. Mike
    Admin
    Mike avatar
    640 posts

    Posted 27 Mar 2007 Link to this post

    Hi Mukunda Manoj,

    Each RadElement, including TabItem, can access its owning control via the ElementTree.Control property. In case with the hierarchical TabStrip, the parent of a nested TabStrip control would be a control of type RadtabStripContentPanel. This panel has AssociatedItem property, which corresponds to the TabItem that is the owner of the content panel. Here is an example in code.
    Say we have attached a dblClick event handler on each TabItem, in the hierarchy:
    tabItem.DoubleClick += new EventHandler(tabItem_DoubleClick);

    Then, in the event handler, we can access the parent(s) of the clicked tab item the following way:

    void tabItem_DoubleClick(object sender, EventArgs e) 
        TabItem clickedItem = (TabItem) sender; 
        //Access Parent 
        RadTabStripContentPanel parentPanel = clickedItem.ElementTree.Control.Parent as RadTabStripContentPanel; 
        if (parentPanel != null
        { 
            MessageBox.Show(parentPanel.AssociatedItem.Text); 
     
            //Accsess Parent's Parent 
            parentPanel = parentPanel.AssociatedItem.ElementTree.Control.Parent as RadTabStripContentPanel; 
            if (parentPanel != null
            { 
                MessageBox.Show(parentPanel.AssociatedItem.Text); 
            } 
        } 

    I hope this helps.

    Regards,
    Mike
    the telerik team

    Instantly find answers to your questions at the new telerik Support Center
  20. Mukunda Manoj
    Mukunda Manoj avatar
    35 posts
    Member since:
    Apr 2006

    Posted 15 May 2007 Link to this post

    Has any new functionality been added to the t.a.b.Strip in the Q1 2007 release? I don't find anything new in the examples or the documentation expect for the new controls in this release.
  21. Vassil Petev
    Admin
    Vassil Petev avatar
    1765 posts

    Posted 15 May 2007 Link to this post

    Hi Mukunda,

    Our Q1 release is the last one we had for RadControls for WInForms. This is the reason why there is nothing new in the tabstrip. There will be several bug fixes In the upcoming service pack, but no new features. The service pack will be available for download tomorrow.


    Greetings,
    Rob
    the Telerik team

    Instantly find answers to your questions at the new Telerik Support Center
Back to Top
UI for WinForms is Visual Studio 2017 Ready