Reputation: 168
A customer has asked for a user interface which combines a number of different elements. It's basically a list. Selecting an entry in the list causes a dialog to expand in-place:
Item 1 Item 2 Item 3 After selecting Item 2 Item 1 ------------------------------------ | Item 2 | | text box button | | button | | | | text box button | ------------------------------------ Item 3
I know you can make some fairly complex listviews http://www.codeproject.com/KB/list/ObjectListView.aspx
How would some of you GUI experts do this? Is there a name for this type of layered interface that I could just search on to learn more about it? Can I just extend listviewitem with my in-line form? I think I just need a pointer as to how to start. I've done some forms programming but this is beyond my current knowledge.
Thanks
Edit --
Dash's comment set me on the right track as I think it's an accordion control that I'm looking for. Since he didn't provide an answer I don't know how to mark this as answered...
Upvotes: 2
Views: 270
Reputation: 4907
I suggest TableLayoutPanel with 6 rows and 1 column with this orientation:
Row1: Flat button with text=Item1
Row2: A panel corresponding Item1(visible false else button in row1 pressed)
.... and so on.
Note:
First row2,4,6 visible=false
When any button in row1,3,5 is pressed depend on position single row 2,3,4 visible =true else visible=false.
Upvotes: 2
Reputation: 60927
If you're using WinForms, there's an implementation called DropDownPanel on CodeProject that looks like what you want.
This answer to a similar question describes a possible solution using TableLayoutPanel
, which you may also be interested in.
Upvotes: 3
Reputation: 30862
Have you looked at the WPF expander control? You could incorporate this into your list to create a composite control which would satisfy the 'layering' you wish to create.
Upvotes: 0