Paul H.
Paul H.

Reputation: 168

How to create the following user interface?

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

Answers (3)

Reza ArabQaeni
Reza ArabQaeni

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

Daniel Pryden
Daniel Pryden

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

m.edmondson
m.edmondson

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

Related Questions