Interface suggestions

  • Thread starter Thread starter Matthew
  • Start date Start date
M

Matthew

I am just about finished my first Visual Basic program. Yay!
Does anybody had any suggestions about improving the look of the interface?
I have read that programmers tend to have a cluttered display, and would
like to avoid this mistake.

I am most concerned with this form:
http://www.osbornewood.com/countdown/images/properties.gif

However, if you have any thoughts about another facet of my program (or web
site, for that matter), I'm all ears!
http://www.osbornewood.com/countdown/screens.cfm

Matthew
 
peronally, I think it looked a little crowded, I tend to avoid using so many
lines to chop the form up.

Just My Opinion.

--
OHM ( Terry Burns ) * Use the following to email me *

Dim ch() As Char = "ufssz/cvsotAhsfbuTpmvujpotXjui/OFU".ToCharArray()
For i As Int32 = 0 To ch.Length - 1
ch(i) = Convert.ToChar(Convert.ToInt16(ch(i)) - 1)
Next
Process.Start("mailto:" & New String(ch))
 
Every pair of eyes to look at it will probably have a different opinion.
Personally, I think it looks great--very well organized, options are easy to
spot.

--

Brian Schwartz
FishNet Components
http://www.fishnetcomponents.com
Building better tools for developers - Be part of it!
 
Matthew,
I liked it.

I would however use the DateTimePicker to enter the time values. To use a
DateTime picker to enter your times set the following properties:

Format = Custom
CustomFormat = "hh:mm" (for hour:min)
CustomFormat = "mm:ss" (for min:sec)
ShowUpDown = True

I would expect the Browse button for the Sound File to be at the end of the
text box, not below it.

I normally include "..." at the end of buttons that show a second dialog
box, for example: Change Color..., Change Font..., Browse... and Show
Border...

If this is under VS.NET 2003, I would enable Themes by:

Setting the FlatStyle to System that supported it (labels, group boxes,
buttons).

Include the following in my MainForm:

Public Shared Sub Main()
Application.EnableVisualStyles()
Application.DoEvents()
Application.Run(New MainForm)
End Sub

Hope this helps
Jay
 
Doh!
CustomFormat = "hh:mm" (for hour:min)

Reviewing where I did this, you may want to consider using "HH:mm" for 24
hour hours & minutes. Which will cause 0 hours & 20 minutes to be displayed
as 00:20 instead of 12:20.

Also I used a property similar to:

Public Property TimeToEnd() As TimeSpan
Get
Return Me.dateTimePickerTimeToEnd.Value.TimeOfDay
End Get
Set(ByVal value As TimeSpan)
Me.dateTimePickerTimeToEnd.Value = DateTime.Today.Add(value)
End Set
End Property

Where the DateTime Picker itself is private & the property above is how I
get or set the value as a TimeSpan (a time interval), as you can see the
Property converts between a TimeSpan & DateTime as needed...

Hope this helps
Jay
 
Matthew,

Very nice.

As others already suggested I would use the datetimepicker and than with the
format option set to time and showupdown to true what gives you in my
opinion the best usage based on the culture settings of the system where it
is used.

I do not understand why there is an Apply in the datetime, when I have to
use that I mostly forget that forever and just click OK, so what is the
reason about that?

Than check your terms, your program will maybe not only be used in the
English zone. Therefore is English no problem because most who will use your
program will probably understand that. However I did think direct, what is
meant with "When to play sound" is that the duration of the sound or the
start time? (Now thinking it over I think the start time, however I am still
not sure of that)

I hope this adds a little bit?

Cor
 
His panels are not symmetrical, the buttons are different sizes, the centre
point is not centre and the whole thing is sunken, which gives an odd
appearance below the menu line, and it's too congested.

Next you'll be suggesting that there should be four panels with different
coloured backgrounds and fairground music playing in the background !, what
happened to the 'Clear Landscape' Principle.

PS : On the plus side, you dont have to move your mouse far to click a
button.

--
OHM ( Terry Burns ) * Use the following to email me *

Dim ch() As Char = "ufssz/cvsotAhsfbuTpmvujpotXjui/OFU".ToCharArray()
For i As Int32 = 0 To ch.Length - 1
ch(i) = Convert.ToChar(Convert.ToInt16(ch(i)) - 1)
Next
Process.Start("mailto:" & New String(ch))
 
Matthew said:
I am just about finished my first Visual Basic program. Yay!
Does anybody had any suggestions about improving the look of the interface?


Right click on your desktop, and select Properties....

LFS
 
Larry,

I find his one nicer than the propertybox, even in contradiction with what I
wrote about the text explains this it more direct.

However can be a matter of taste.

:-)

Cor
 
Cor Ligthert said:
I find his one nicer than the propertybox, even in contradiction with what I
wrote about the text explains this it more direct.

However can be a matter of taste.

Yes, but...

The whole purpose of Windows is to give every application the
same look and feel so users do not have to learn new interfaces
for every program they run.

The same goes for the common dialogs. When applications need
a file name, they use the common dialog because the user will
be familiar with that interface. The same for colors, and fonts.

On that same theme, when applications use similar functionality,
they should try to provide similar interfaces so the user does not
need to learn differnt interfaces to do the same task in different
programs.

For more examples:

Right click on MyComputer and select Properties
Right click on the TaskBar and select Properties
Right click on clock in the system tray, and select Properties
Right click on any folder and select Properties
etc...

(Note Properties is the last item in those menus, even its
placement is consistant...)

They are all tabbed dialogs. And, considering 3 of the OP's
frames need Color and Font, the tabbed dialog could display
them as combo boxes, rather than buttons to call up yet
another dialog (see how Display Properties uses combos).

One other change I'd suggest is to call TextWindow1 "Header"
and TextWindow2 "Footer" since that is the function they display.

LFS
 
Terry,
By panels do you mean Group Boxes?

The groups boxes appear symmetrical left to right, however I don't know if
they need to be symmetrical top to bottom as that would give "white space"
in the bottom ones. Ergo I see a bigger problem with white space in the
bottom ones, verses the asymmetrical sizes he has now...

Are you expecting all 12 buttons to be the same size? Now that you mention
it I would partially expect the three along the bottom to be the same size.
However seeing as the first one is larger, followed by two the same size I
don't see a problem per se...

The Apply button in the Clock group box is hard to say, I would partially
expect it down by the Hide & Start buttons... Depending on does it: Apply
only apply the Time To End values, does it apply the Clock values, or does
it apply the entire dialog.
Next you'll be suggesting that there should be four panels with different
coloured backgrounds and fairground music playing in the background !,
what happened to the 'Clear Landscape' Principle.
That comment does not warrant a response!

Hope this helps
Jay
 
Larry,

Basicly we agree of course, however I do not find that property box real
nice, it is only used by developpers. Maybe that is the reason for that. For
all other boxes we agree complete. (I write this often as well, by instance
when someone wants to change a common used box as the close box for
something else than to close)

Cor
 
LOL, Sorry jay I just couldnt resist it - Hook Line And Sinker !

Your need for perfection and superiority forced you to give as detailed an
answer as is possible whilst maintaining your dignity, pride and
professionalism.

Well Done !

Regards - Terry


--
OHM ( Terry Burns ) * Use the following to email me *

Dim ch() As Char = "ufssz/cvsotAhsfbuTpmvujpotXjui/OFU".ToCharArray()
For i As Int32 = 0 To ch.Length - 1
ch(i) = Convert.ToChar(Convert.ToInt16(ch(i)) - 1)
Next
Process.Start("mailto:" & New String(ch))
 
I do not understand why there is an Apply in the datetime, when I have to
use that I mostly forget that forever and just click OK, so what is the
reason about that?



There is actually a reason.



The program counts down to a time. The countdown clock is running while
they change options.

If the time is 10:00 AM and they want to count down to 11:00 AM, they will
type 11 in the hour box.

The problem is, if the clock ticks before they hit the second "1" it changes
the time to count down to to 1:00 AM. This means it's done, so it closes
the program.



The datetimepicker might make the Apply button unnecessary, though. I'll
think about it.


Than check your terms, your program will maybe not only be used in the
English zone. Therefore is English no problem because most who will use
your program will probably understand that.



I had not thought about that before. My guess is it isn't an issue.

However, if it was an issue, how should I handle it?

Would I need to hire translators? Or make everything just pictures?


However I did think direct, what is meant with "When to play sound" is
that the duration of the sound or the start time? (Now thinking it over I
think the start time, however I am still not sure of that)



I agree with you; "When to play sound" is not very clear. It is intended to
mean the start time of the sound based on the countdown clock. So, a value
of 2:00 would make the sound start playing at two minutes 'till the event
start time (0:00 on the countdown clock).



Anybody know of a clearer way to present this?



Matthew
 
His panels are not symmetrical

As in the GroupBoxes? I checked, and they are all 216px wide. Of course,
the top two are a different height from the bottom two. Is this a flaw in
your opinion?
the buttons are different sizes

My goodness! I didn't even think about that. Of course, in Display
Properties there are four sizes of buttons scattered around. On the other
hand, eight of the thirteen are a standard size.
I'll see if I can make this a bit more standardized.
the centre point is not centre

I am not sure what you mean by that.
the whole thing is sunken, which gives an odd appearance below the menu
line

Oops! I was playing around with the FormBorderStyle and set it to Fixed3D.
I changed it to FixedSingle so it doesn't look "sunken" any more.
it's too congested.

Do you have a suggestion to make it look less congested?
what happened to the 'Clear Landscape' Principle.

Good question. This is my first client-side program, so consider me a
newbie. What is the Clear Landscape Principle? Do you have a link where I
could read about it?

Matthew
 
Mathew, this was simply a ruse to raise the hackles of Jay, it was purely a
mischeivous act on my behlf to lure him into an act of self defence. I do it
sometimes just for fun.

As far as the 'Clear Landscape' principle is concerned, I just made it up.
Jay is forever quoting books and I wanted to see if he would admit to not
knowing about this non existant principle.

I do think it is a little crowded, and personally I would not have all the
lines dividing up the form, but thats my personal opinion, other than that
it looks OK.

Regards - OHM :)))

--
OHM ( Terry Burns ) * Use the following to email me *

Dim ch() As Char = "ufssz/cvsotAhsfbuTpmvujpotXjui/OFU".ToCharArray()
For i As Int32 = 0 To ch.Length - 1
ch(i) = Convert.ToChar(Convert.ToInt16(ch(i)) - 1)
Next
Process.Start("mailto:" & New String(ch))
 
OHM,
Actually my initial thought was to using a tab control, where there are
either 2 to 4 tabs. Basically where each group box is its own tab, or
possible the top two group boxes are one tab, while the bottom two are a
second tab. I didn't initially offer it as I wasn't really seeing enough
info on each tab.

I could also see him offering a "preview" window something like the Themes
or Screen Saver tabs of Display Properties. A preview would work better with
tabs...


If I used "drop downs" instead of buttons to Dialog boxes as Larry seems to
be suggesting, I would be certain to still give an option to get to an
option to get to the Dialog box (Similar to how the Display Properties do).
Unfortunately I do not know where we can get the actual control the Display
Properties uses for color. On one of my apps I use a owner draw context menu
with an option to show the ColorDialog.
Your need for perfection and superiority forced you to give as detailed an
answer as is possible
Is there something wrong with a need for perfection? :-P

I attempt to balance the need for perfection with getting the job done. I've
seen way too much code from developers (both beginner & advanced) whose only
priority was "getting the job done", which invariable leads to maintenance
nightmares, which would lead to even more bad coding mistakes... Which is
where I am finding a lot of truth (& similarity to my thinking) in Andrew
Hunt's & David Thomas' as book "The Pragmatic Programmer" from Addison
Wesley. http://www.pragmaticprogrammer.com/

FWIW: I agree with the need for perfection, however I seriously question an
actual need for superiority (although I'm sure my answers may come across
that way :-|). I actually just tend to attempt to cover all the options &
give enough info so that others can: 1. make an informed choice & 2. instill
a desire to learn more.

Hope this helps
Jay
 
Than check your terms, your program will maybe not only be used in the
When you do not want to use pictures, make than your terms as short as
possible

"Start" in the sound box says as much as "When to play sound"
Color says as much as Change Color
Hour and min are not needed so do not add it
Sound is enough instead of Sound file, it is showed with
..Wav File what is of course to play not to eat, so to play is not needed.
Text 1 says as much as Text Window 1
Text to display is double there and add nothing you can see that

However just my thought and not needed that you take it, just what came up
in my mind.

And now I was busy with this, I would make than from Show Border Hide border
a toglle button

Cor
 
OHM,
Jay is forever quoting books and I wanted to see if he would admit to not
knowing about this non existant principle.
Who me? :-)

I hope you realize I read, then reread sections, of all the books I quote.

Also I normally only quote "theory" what I have found to work & attempt to
apply to my own develop efforts (refactoring, test driven development,
object thinking). Interesting enough a lot of the "theory" are things I
already do I just happen to come across the book that formalized it.

I quote "practice" for things that I have found to work (DateTime.Parse,
VB.Split vs String.Split, DataSets, Windows Forms).
I do think it is a little crowded, and personally I would not have all the
lines dividing up the form, but thats my personal opinion, other than that
it looks OK.

Jay

One Handed Man ( OHM - Terry Burns ) said:
Mathew, this was simply a ruse to raise the hackles of Jay, it was purely
a mischeivous act on my behlf to lure him into an act of self defence. I
do it sometimes just for fun.

As far as the 'Clear Landscape' principle is concerned, I just made it up.
Jay is forever quoting books and I wanted to see if he would admit to not
knowing about this non existant principle.

I do think it is a little crowded, and personally I would not have all the
lines dividing up the form, but thats my personal opinion, other than that
it looks OK.

Regards - OHM :)))
<<snip>>
 
Cor,
Hour and min are not needed so do not add it
I agree!

Although I would consider keeping "hour & min" as the first "time" entered
is hour & minutes, while the second "time" is "min & second". Having each
labeled as such would provide consistency & help avoid confusing the user
with one labeled & the other not.

I would consider labeling the two "time" controls with either status bar
text of a tool tip, instead of labels on the screen.

Just a thought
Jay
 
Back
Top