Introduction to Text-Based Controls
Introduction to Labels
A label is a control that serves as a guide to the user. It provides static text that the user cannot change but can read to get information on a form. The programmer can also use it to display simple information to the user. Most controls on the form are not explicit at first glance and the user may not know what they are used for. Therefore, you can assign a label to a control as a help to the user.
To add a label to a container, click the Label button from the Toolbox and click the object that would host it.
To programmatically create a label, declare a handle to Label, initialize it using its default constructor, and add it to the Controls property of the form. Here is an example:
Imports System.Drawing Imports System.Windows.Forms Module Exercise Public Class Starter Inherits Form Private lblMessage As Label Dim components As System.ComponentModel.Container Public Sub New() InitializeComponent() End Sub Public Sub InitializeComponent() lblMessage = New Label() Controls.Add(lblMessage) End Sub End Class Function Main() As Integer Dim frmStart As Starter = New Starter Application.Run(frmStart) Return 0 End Function End Module
The most important characteristic of a label control is the text it displays. That text is also referred to as its caption and this is what the user would read. The text of a label is its Text property and is its default. To set a labelís caption, after adding the control to a container, click Text in the Properties window and type the desired value. As we mentioned when studying controls characteristics, at design time, the text you type in the Text field is considered ďas isĒ. If you want to create a more elaborate and formatted string, you would have to do it programmatically. Here is an example:
Public Sub InitializeComponent() lblMessage = New Label() lblMessage.Text = Date.Today.ToLongDateString() Controls.Add(lblMessage) End Sub
Here is an example of what this would produce:
When it comes to its caption, one of the most valuable characteristics of the text of a label is the variance of the font. When designing a caption. you can change the default font to make it more attractive.
After adding a label to a form, by default, it receives a fixed size. If you type its caption and press Enter, the text you provided would be confined to the allocated dimensions of the control. If the text is too long, part of it may disappear. You can then resize the label to provide more area. Another solution is to automatically resize the label to accommodate the length of the string you typed. This is aspects is controlled by the Boolean AutoSize property. Its default value is False. If you set this property to True, at design time, a rectangular border appears around it. If you type a string in the Text field and press Enter, the control would be resized to show the whole string but using only the necessary space.
If you programmatically create a label, it assumes a default size. If you assign it a string that is too long for that default size, part of the string may appear on a subsequent line. If you want the whole string to appear on the same line, you can set the AutoSize to true. Here is an example:
Public Sub InitializeComponent() lblMessage = New Label() lblMessage.Text = Date.Today.ToLongDateString() lblMessage.AutoSize = True Controls.Add(lblMessage) End Sub
Here is an example of what this would produce:
After typing the caption of a label whose AutoSize property is set to False, you can resize its allocated space to your liking. This is because a string occupies a rectangular area. Here is an example:
By default, the caption of a label is positioned starting on the middle-left side of its allocated rectangle. Alternatively, you can position it to one of the nine available positions. As we saw is Lesson 5, the position of the caption of a label is controlled by the TextAlign property which is based on the ContentAlignment enumerator:
It can have the following values:
Other fancy characteristics you can apply to a label include its font and color. For example, a label is primarily meant to display a string. To make it fancier, you can display a (small) picture next to it. To do this, at design time, use the Image field of the Properties window to select a picture. You can also specify the picture at run time by assigning an Image value to the Label.Image property. After adding a picture that would accompany the label, you can specify what position the picture would hold with regards to the label. To do this, select the desired position of the ImageAlign field in the Properties window.
Instead of using a picture from the Image property, you can create a list of images using an ImageList control and assign it to the label. In fact, the advantage of an ImageList is that, unlike the Image property, it allows you to use more than one picture.
After assigning an ImageList to the label control using the Properties window or code, you can use the ImageIndex to specify what picture to display next to the label.
A label provides another property called UseMnemonic. This property is valuable only when the label accompanies another control.
In the past, to add an internet or email link to a form, there were many steps to follow. As the internet and email had become an integral part of the culture, it was also time to have an appropriate control adapted for this need. To address this issue, a control called LinkLabel is available from the .NET Framework.
As its name indicates, the LinkLabel control allows you to create a link. If you have done web development, you would know that a link can be made fancy by varying its colors. A link typically uses three different colors (actually, if you use cascading style sheet, you can add a fourth color as hover):
After creating a link, when the user accesses it, you can define some behavior the link would exhibit to the user, such as getting underlined or not underlined when the mouse passes over the link. The behaviors of a link can be controlled through the LinkBehavior property whose values are AlwaysUnderline, HoverUnderline, NeverUnderline, or the application would refer to Internet Options dialog box of Control Panel.
A link is typically meant to help the user switch to a different page or document when clicked. In some cases and at a particular time, you may not want the user to be able to click a link. In this case you can disable it. If you decide to disable a link, you can change its color using the DisabledLinkColor property. On the other hand, if the user is not able to access a link, that is, if a link is disabled, you can find out the color of that link from the DisabledLinkColor property.
Here is an example:
Imports System.Drawing Imports System.Windows.Forms Module Exercise Public Class Starter Inherits Form Friend WithEvents lnkConnector As LinkLabel Dim components As System.ComponentModel.Container Public Sub New() InitializeComponent() End Sub Public Sub InitializeComponent() lnkConnector = New LinkLabel() lnkConnector.Width = 150 lnkConnector.Text = "Lessons and Topics" Controls.Add(lnkConnector) End Sub Private Sub ConnectorClicked(ByVal sender As Object, _ ByVal e As LinkLabelLinkClickedEventArgs) _ Handles lnkConnector.LinkClicked System.Diagnostics.Process.Start( _ "C:\Program Files\Internet Explorer\iexplore.exe", _ "http://www.functionx.com/vccli") End Sub End Class Function Main() As Integer Dim frmStart As Starter = New Starter Application.Run(frmStart) Return 0 End Function End Module
This would produce:
A text box is a Windows control used to get or display text to the user. At its most regular use, a text box serves as a placeholder to fill out and provide information. Such a use is common on employment applications, login dialog boxes, forms, etc. Like most other controls, the role of a text box is not obvious at first glance; that is why it should be accompanied by a label that defines its purpose.
From the userís standpoint, a text box is named after the label closest to it. Such a label is usually positioned to the left or the top side of the text box. From the programmerís point of view, a text box is a placeholder used for various things. For example, you can show or hide it as you see fit. You can also use it only to display text without allowing the user to change it.
To create a text box, from the Common Controls section of the Toolbox, you can click TextBox and click the form. The text box is based on the TextBox class. This means that you can use this class to dynamically create a text box and add it to your application. The text box control is based on the TextBox class whose immediate parent is TextBoxBase. Like every .NET Framework class, it has a constructor that can be used to dynamically create the control. Here is an example:
Imports System.Drawing Imports System.Windows.Forms Module Exercise Public Class Starter Inherits Form Private txtNotes As TextBox Dim components As System.ComponentModel.Container Public Sub New() InitializeComponent() End Sub Public Sub InitializeComponent() txtNotes = New TextBox txtNotes.Location = New Point(10, 10) Controls.Add(txtNotes) End Sub End Class Function Main() As Integer Dim frmStart As Starter = New Starter Application.Run(frmStart) Return 0 End Function End Module
The TextBoxBase class provides other methods derived from the controlís parent or from ancestor classes.
As a control primarily meant to display text, like a label, the text box shares many of the characteristics of a label: text alignment, font, color, etc.
The most important aspect of a text box is its text, whether it is displaying or requesting it. This is the Text property. When you add a text box control to a form or other container, by default, it is left empty. If you want the control to display some text when the form launches, type a string in the Text property field in the Properties window.
After creating a text box, it may be empty, the user can start typing in it to fill it with text. You can programmatically assign it a string to occupy it. Another way you can put or add text to the control is to paste the content of the clipboard, using text from another control. The syntax of the Paste() method is:
Public Sub Paste
At any time, to know the length of the text in the control, you can retrieve the value of the TextLength property, which is of type int.
The selection of text from a text box control can be performed either by you or by a user. To select part of the text, you can specify the starting point using the SelectionStart property, which is of type int. After the starting position, you can specify the number of characters to include in the selection. This is done using the SelectionLength property, which is of type int. The SelectionStart and the SelectionLength properties allow you to programmatically select text. The user, on the other hand, also knows how to select part of the text of the control. These operations can also be performed using the Select() method of the TextBox class. Its syntax is:
Public Sub Select(start As Integer, length As Integer)
Alternatively, the user may want to select the whole content of the control. To programmatically select the whole text of a text box control, call the SelectAll() method. Its syntax is:
Public Sub SelectAll
When some text has been selected in the control, to get that text, you can retrieve the value of the SelectedText property, which is a handle to String.
After the text, in part or in whole, has been selected, you or the user can manipulate it. For example, you can copy the selection to the clipboard. This is done using the Copy() method. Its syntax is:
Public Sub Copy
To delete part of the text, the user can cut it. You can programmatically do this using the Cut() method. Its syntax is:
Public Sub Cut
To delete the whole contents of the text box, you can call the Clear() method. Its syntax is:
Public Sub Clear
Any operation performed on the text box can be undone using the Undo() method whose syntax is:
Public Sub Undo
To prevent an undo operation, call the ClearUndo() method. Its syntax is:
Public Sub ClearUndo
As mentioned already, a text box should be accompanied by a label that indicates what it is used for. To support this relationship, the Label control provides various properties. An accelerator character is a symbol of the label that provides easy access to its text box. On the label, such a character is underlined. An example would be First Name. The idea is that, if the user presses the Alt key in combination with the labelís underlined character, the text box it accompanies would receive focus.
To create an accelerator key, choose one of the labelís characters and precede it with an ampersand character when setting its caption. An example would be &First Name. If you want a label to display the accelerator character instead of a plain ampersand, set the labelís UseMnemonic property to true, which is already its default value. If you set it to true but need to display an ampersand, type two & characters where the ampersand would be shown.
The UseMnemonic property of a label is only used to indicate that the label would display an accelerator character and the & symbol typed on the label creates that accelerator character. To indicate which text box would receive focus when the accelerator character of the label is invoked, you must make sure you establish an appropriate tab sequence using the Tab Order menu item from the main menu or using the combination of TabStop/TabIndex properties. Typically, the label should have a Tab Order or TabIndex value that is just - 1 of that of the control it serves.
By default, a newly created text box is used to both display and receive text from the user. If you want the user to read text without being able to change it, set the ReadOnly Boolean property to True. Its default value is false.
If a text box allows the user to enter text in it, the user can click the control and start typing. If a certain text box usually receives some known or common strings, you can assist the user with completing the entry. The TextBox class supports this with three properties.
If you want to assist the user with completing the string entered in a text box, first specify where the necessary strings will come from. You have two options. You can use the AutoCompleteSource property, that is based on the AutoCompleteSource enumeration. Its members are: None, RecentlyUsedList, FileSystem, FileSystemDirectories, HistoryList, ListItems, AllSystemSources, AllUrl, and CustomSource.
If you want to specify your own-created list of items, use the AutoCompleteCustomSource property. At design time, to create a list of strings, access the Properties window for the text box. In the Properties window, click the ellipsis button of the AutoCompleteCustomSource field to open the String Collection Editor. Enter the strings separated by a hard Return, and click OK.
After specifying the source of the list that will assist the user to complete the entry of the text box, set it AutoCompleteMode property. This property is based on the AutoCompleteMode enumeration that has four members. None is the default value.
A text box can be configured to display only lowercase characters, only uppercase characters, or a mix. This characteristic is controlled by the CharacterCasing property, which is an enumerator that holds the same name. The default value of this property is Normal, which indicates that the control can use a mix of lowercase and uppercase characters. If you set this property to Lower, all existing characters, if any, in the control would be converted to lowercase and all future characters typed in the control would be automatically converted to lowercase. If you set this property to Upper, all existing characters, if any, in the control would be converted to uppercase and all future characters typed in the control would be automatically converted to uppercase.
Text typed in a text box appears with its corresponding characters unless you changed the effect of the CharacterCasing property from its default Normal value. This allows the user to see, and be able to read, the characters of the control. If you prefer to make the characters un-readable, you have two options.
The operating system uses a default character it uses to hide the contents of a text box. If you want to use that character, set the UseSystemPasswordChar property to true. If you prefer to specify your own character, you can use the PasswordChar property. Although this property is a char type of data, changing it actually accomplishes two things:
|Previous||Copyright © 2008-2009, yevol.com||Next|