473,407 Members | 2,598 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,407 software developers and data experts.

An array of panels for a configuration window

Hi all again,

My application has a configuration window that is currently using a
tabcontrol to separate the different logical aspects of configuring it.
That is all well and fine, but I am soon going to have enough pages that
this will look really crowded. I decided that the most elegant solution
would be to go for a treeview where you select the category, and then
the right side of the window will display a panel that contains the
related configuration options.

Currently, we're talking about 5-10 pages of configuration settings, and
it might expand to 15-20 in the near future. What I thought of doing was
to have an array of settings, something like this in psuedo-code:

(A ConfigPage contains the Path (from the treeview), a display string
for the top right part of the window, and the panel to be displayed when
the Path node is the current one).

ConfigPage[] ConfigPages =
{
{"MyApp", "MyApp Configuration Settings", pConfigIntro},
{"MyApp\Data", "MyApp Data Settings", pDataPage},
{"MyApp\GUI", "Graphical stuff", pGUIPage}
}

You probably understand what I mean.

What I am wondering - is this the "correct" way to do it? Is there a
more elegant way? Does anyone have any experience from implementing
something like this, or any tips'n'tricks for how to make it user
friendly and painless for the developer (me) at the same time?

Also, where should I define this array for C# to not hate me? After the
VS2003-generated InitializeComponent() function perhaps?

Thanks for any input!

Rune
Jan 8 '06 #1
1 2241
Is the crowding due to the tabs being visible?

Keep the TabControl, but use a custom one in which you can hide the tabs.
Then just use your Treeview to set the tabcontrols selectedindex.

For the modifications needed to TabControl see the example on my site titled
"Add a HideTabs property to turn on/off the Tabs"
http://www.dotnetrix.co.uk/tabcontrols.html

You could even modify the example to give you a Title Area at the top, after
first having set Alignment to bottom.

--
Mick Doherty
http://dotnetrix.co.uk/nothing.html
"Rune Jacobsen" <rune.jacobsen@no_spam.broadpark.no> wrote in message
news:43********@news.broadpark.no...
Hi all again,

My application has a configuration window that is currently using a
tabcontrol to separate the different logical aspects of configuring it.
That is all well and fine, but I am soon going to have enough pages that
this will look really crowded. I decided that the most elegant solution
would be to go for a treeview where you select the category, and then the
right side of the window will display a panel that contains the related
configuration options.

Currently, we're talking about 5-10 pages of configuration settings, and
it might expand to 15-20 in the near future. What I thought of doing was
to have an array of settings, something like this in psuedo-code:

(A ConfigPage contains the Path (from the treeview), a display string for
the top right part of the window, and the panel to be displayed when the
Path node is the current one).

ConfigPage[] ConfigPages =
{
{"MyApp", "MyApp Configuration Settings", pConfigIntro},
{"MyApp\Data", "MyApp Data Settings", pDataPage},
{"MyApp\GUI", "Graphical stuff", pGUIPage}
}

You probably understand what I mean.

What I am wondering - is this the "correct" way to do it? Is there a more
elegant way? Does anyone have any experience from implementing something
like this, or any tips'n'tricks for how to make it user friendly and
painless for the developer (me) at the same time?

Also, where should I define this array for C# to not hate me? After the
VS2003-generated InitializeComponent() function perhaps?

Thanks for any input!

Rune

Jan 8 '06 #2

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

1
by: Edmond Ho | last post by:
Hi, I'm having trouble with a small curses program. I'm associate a pad with a panel. As I understand, a pad is supposed to be just a window with an arbitrary size. That seems to imply that a pad...
0
by: Bruce E. Stemplewski | last post by:
I used VC6 for a long time. I really prefer the old VC6 method for displaying help. Is there anyway to combine all of the help panels into on floating Window in .NET 7? If so how? -- Bruce...
5
by: Robert Oschler | last post by:
I am converting a Perl script over to "C" for a potential open source project. I need some open source "C" code that will give me the same functionality of a Perl Style associative array: ...
1
by: pfnus | last post by:
Hi, I want to display different forms when the buttons are clicked and all the forms are having different controls on it. So instead of adding new windows forms to the project, i enlarged the...
1
by: Timo | last post by:
It occurred to me there might be another way to approach the problem (I'd asked about a 'large "virtual canvas" in VS designer for aspx pages' in another posting). I'm using multiple panels...
0
by: martin1 | last post by:
Hi, All, I tried to split form into 9 panels for window application, each panel attach one DataGridView to display data from database. That means there are 9 different DataGridViews to display...
0
by: Husey | last post by:
Hi, I am trying to create a very simple EJB project which requires me to create a new jboss configuration in Eclipse. I keep getting the error message "An error has occurred. See error log for...
8
n8kindt
by: n8kindt | last post by:
i have a function created for simple emailing (posted below). i'm new to arrays. i actually figured out how to set up the last value (Att) as an array so i could add an unlimited amount of...
1
by: karthik25 | last post by:
Hi, The following code creates a tab container, 5 tab panels, buttons, labels. I was able to add event handlers to the button. But how am i supposed to access the dynamically created labels? For...
0
by: emmanuelkatto | last post by:
Hi All, I am Emmanuel katto from Uganda. I want to ask what challenges you've faced while migrating a website to cloud. Please let me know. Thanks! Emmanuel
1
by: nemocccc | last post by:
hello, everyone, I want to develop a software for my android phone for daily needs, any suggestions?
1
by: Sonnysonu | last post by:
This is the data of csv file 1 2 3 1 2 3 1 2 3 1 2 3 2 3 2 3 3 the lengths should be different i have to store the data by column-wise with in the specific length. suppose the i have to...
0
by: Hystou | last post by:
There are some requirements for setting up RAID: 1. The motherboard and BIOS support RAID configuration. 2. The motherboard has 2 or more available SATA protocol SSD/HDD slots (including MSATA, M.2...
0
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However,...
0
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven...
0
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows...
0
agi2029
by: agi2029 | last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing,...
0
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome a new...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.