Search code examples
winformsuser-interfaceusability

Using a "hyperlink" effect in Winforms applications


What do people think about using pretend hyperlinks, in Winforms apps?

Example:

alt text

In my example you would click "into" the Organisation record card for Acme Corp Inc or "into" the details of the next appointment.

If we ignore, for the moment, how the user edits the Organisation or adds/removes an appointment, is it a sensible UI in Winforms to use blue & underline to signify click here and i'll take you to a new screen

As in:

TextBox1.Font = New Font("Blah", 8.25!, FontStyle.Underline etc
TextBox1.ForeColor = Color.Blue

Not forgetting:

TextBox1.Cursor = Cursors.Hand

This would be for a reasonably rich application (for example a CRM) where you have a lot of different kinds of screens and the user is navigating between all sorts of records. And you want to show the user that he can navigate between detail views, grids, children, parents, siblings etc.

Pros:

  • it's familiar to users and it's obvious, without being obtrusive or taking up any screen real estate

  • easy to implement

  • the often-used alternative (a button with an icon or even just three dots [...]) looks a bit old-fashioned, doesn't work very well in grids, and takes up space

Cons:

  • with all the flexibility and control you have in a Winforms front end, you should be able to devise a smart ui without needing to borrow from browsers (maybe???)

  • these pseudo links won't behave as true anchor tags (there won't be any "visited" [ie. turn me purple if I've already been in here] or "hover" behaviour and no open-in-new-tab features, without a lot of work) ... potentially annoying to users?

  • detracts from genuine hyperlinks (as in email addresses etc) - these no longer stand out as links "out to the internet" (to the browser, to email client) ... very minor issue?


Solution

  • Looks okay to me. The concept of links has anyway already migrated from web to desktop applications. Users should accept this without problems (maybe after first ten minutes playing out with your program).

    Also quite popular in enterprise applications.

    Maybe consider changing the color, to, maybe brown or green, so that it doesn't immediately imply a native web link.

    Also many web applications built with some event-driven frameworks (like ASP.NET WebForms, JSF etc.) heavily use links that do not link anywhere but invoke some server-side processing (basically an event handler). So it's not unusual use.