<p>I wish to display a list of letters from a through z on a form.
Each letter needs to be clickable with that value being passed as a click argument.
Aside from creating 26 letters and using the click event of each letter does anyone know of a quick way to do this?
I know how to load dynamic controls etc and how to do it that way. Just wondering if anyone knew of a clever way to do this?</p>

<p>Cheers</p>

This is the "dynamic way" I would do it in. I know you asked for other clever ways to do it in but I think this is the most accepted way to do it.
This will produce those buttons and add a click-handler that takes the button as sender. It will also see to that the buttons location wraps if outside of the forms width.
```
```
Public Class Form1

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    Dim ButtonSize As New Size(20, 20)
    Dim ButtonLocation As New Point(10, 20)

    For p As Integer = Asc("A") To Asc("Z")
        Dim newButton As New Button            
        If ButtonLocation.X + ButtonSize.Width > Me.Width Then
            ButtonLocation.X = 10
            ButtonLocation.Y += ButtonSize.Height
        End If
        newButton.Size = ButtonSize
        newButton.Location = ButtonLocation
        newButton.Text = Chr(p)
        ButtonLocation.X += newButton.Width + 5
        AddHandler newButton.Click, AddressOf ButtonClicked
        Me.Controls.Add(newButton)
    Next

    End Sub

    Sub ButtonClicked(ByVal sender As Object, ByVal e As System.EventArgs)
        MsgBox(CType(sender, Button).Text)
    End Sub
End Class
```
```
alt text http://img235.imageshack.us/img235/2267/testoa6.jpg