VB.net Create Menu From Database

5 posts, 2 answers
  1. Dadan
    Dadan avatar
    6 posts
    Member since:
    Nov 2012

    Posted 22 Nov 2012 Link to this post

    I'm trying to create dynamic Ribbon Bar menu at runtime. 
    All properties for every item in the menu is stored in database (idmenu, caption, image (i store only the image index, not the image object), etc). I also need to create event handler which fired when the menu is selected.
    I'm trying to use all available ribbon items in my Ribbon Bar menu (Button element, tab, gruop button , dropdown button, etc).
    For the button element, i want to use small image (16x16) for some elements, but i want to use large image (32x32) for some other elements.

    Anyone has any idea how to do this in vb.net with telerik winforms component ??
    thx for your attention.
  2. Answer
    Nikolay
    Admin
    Nikolay avatar
    1804 posts

    Posted 23 Nov 2012 Link to this post

    Hello Dadan,

    If I understand correctly, by 'menu is selected' you mean when a tab from RadRibbonBar is selected as the other elements in RadRibbonBar do not support selected. If so, the event is CommandTabSelected:

    AddHandler RadRibbonBar1.CommandTabSelected, AddressOf RadRibbonBar1_CommandTabSelected
     
    Private Sub RadRibbonBar1_CommandTabSelected(sender As Object, args As Telerik.WinControls.UI.CommandTabEventArgs)
     
    End Sub
    You can read more information about creating elements in RadRibbonBar in this article and the other articles in the same section. Using the information that you will find there, you can loop over your data object (i.e. DataTable) and create the respective elements. You will also need to store some kind of parent id, which determines where an element should be placed.

    As to the images, you can have two different ImageLists - one for 16x16 and one for 32x32. A column in your database will tell from which ImageList the image will be pulled out and another column will contain the index by which you should get the image from the specified ImageList.

    I hope this helps.

    All the best,
    Nikolay
    the Telerik team
    Q3’12 of RadControls for WinForms is available for download (see what's new). Get it today.
  3. UI for WinForms is Visual Studio 2017 Ready
  4. Dadan
    Dadan avatar
    6 posts
    Member since:
    Nov 2012

    Posted 28 Nov 2012 Link to this post

    Thx very much Nikolay,
    I Try your suggestion and now i've made my menu aplication based on database.

    Now, i'm confusing on how to find specified node in treeview.
    I use method radtreenode.find("node.text") and it show the first node with the same text.
    but, mynode.text is not unique. i have some nodes with same text, but with different parent.
    i've set the mynode.name as a unique value.

    how can i find a node with parameter mynode.name ?
    after finding the specified node, i want that node to be visible ( expanded with all it's parent ).

    once again, thx for your fast response, sorry if my english is bad,
  5. Dadan
    Dadan avatar
    6 posts
    Member since:
    Nov 2012

    Posted 28 Nov 2012 Link to this post

    Updated :

    i've find a way to find the specified node from the telerik documentation.
    but, i'm still confusing how to get all node in treeview. because radtreeview.nodes only give the root node.

    i set allowdragdrop property = true.
    after drag & drop process, i want to know, one node before the selected node and one node after the selected node
    I try use Radtreeview.selectednode.prevnode, but it return the previous node before i move the selected node.

    can anyone tell me how to do that ?
  6. Answer
    Nikolay
    Admin
    Nikolay avatar
    1804 posts

    Posted 30 Nov 2012 Link to this post

    Hi Dadan,

    The nodes of RadTreeView are kept in a hierarchy. I.e. RadTreeView has a Nodes collection that contains the nodes at the root level and each of these nodes has a Nodes property that its child nodes. So, in order to get all Nodes of RadTreeView you should use recursion looping through the Nodes collections of all nodes.

    As to the previous and next nodes of the dragged and dropped node, you should handle the DragEnded event and take the PrevNode and NextNode of the Node that comes from the event argument:

    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
     
            this.radTreeView1.DragEnded += new Telerik.WinControls.UI.RadTreeView.DragEndedHandler(radTreeView1_DragEnded);
        }
     
        void radTreeView1_DragEnded(object sender, Telerik.WinControls.UI.RadTreeViewDragEventArgs e)
        {
            Console.WriteLine("PrevNode " + e.Node.PrevNode.Text + " NextNode " + e.Node.NextNode.Text);
        }
    }

    A bit of topic, I would kindly ask you to open a new thread for each question that is not related to the main topic of the existing threads. This will avoid mixing several different topics (like in the current case - for RadRibbonBar and RadTreeView) in one thread, hence our community will be able to find information for the topics more easily in case it is interested.

    Greetings,
    Nikolay
    the Telerik team
    Q3’12 of RadControls for WinForms is available for download (see what's new). Get it today.
Back to Top
UI for WinForms is Visual Studio 2017 Ready