Mon. Jan 23rd, 2023

Unit 10 HCI

When considering an interactive kiosk, the following requirements are vital to meet:

  • Interface should be clear and uncluttered
  • Interaction is likely to be solely via touch
  • Audio may be helpful

Sample project

Following object oriented principles, we could consider pages where data is displayed as containing multiple instances of a class that we have created.

For example, if the kiosk was to display an interactive map, one might choose to create a class that represents one of the items that appears on the map – perhaps a store.

Assuming a store, I may wish to refer to the following attributes:

  • Store name
  • Store location
  • Type of store
  • Image of the store logo

Now considering the behaviours that must be displayed, each store entity must:

  • Be able to respond to being ‘clicked’
  • Be able to adjust its location in the event of the page size changing

Finally, as this item should be visible on the screen and I want it to be able to respond to user input, I am inheriting from Panel – this means MapEntity will have all of the methods and attributes of a Windows control.

To create this entity requires the code as found in MapEntity.cs.

When a map item is tapped, we want to show more information to the user – in this example, it will be through the use of a pop-up frame, which has been called MenuPanel – this also inherits from Panel, and can be found in file class1.cs. Each MapEntity contains an instance of MenuPanel which is responsible for displaying that item’s information on the screen (logo, description etc) – note that you can easily change this by altering the attributes used in the MapEntity.

The map itself is a simple Windows Form, containing a panel item, into which the map items will be placed, along with an image to serve as the background for the map.

This code is relatively simple, and is located in MapPage (design and cs files). Notice that there are a couple of event handlers required for this to work fully: one that reacts to clicking the ‘X’ button to close the map, and one to respond to resizing the window.

Other components

Each section of the kiosk is simply a different Windows Form, and these can be displayed and closed as required to create the navigation through the system.


Using a kiosk usually means there are no input devices other than the touch screen. If you were wishing to search for a store, you would need to be able to enter some of the information: for this purpose, an onscreen keyboard is useful.

One has been implemented in this code, using a multi-dimensional string array that contains the characters that are to appear on the keyboard. Each character is represented by a button item, together with a click event handler. When a button is clicked, it is assumed that the character on the key (its text) is what should be typed. This is added to a textbox to show the user the current search term.

NB: After downloading, change the file extension to .zip in order to unzip the demo project.

Other considerations

Please ensure that all files are appropriately named at all times, for example:

  • Filenames for classes should reflect the class name
  • Forms should be named after their purpose and function
  • Files should be named appropriately
  • Full file system should be used – ie folders for different types of media etc