using System;
using System.Drawing;
using System.Windows.Forms;
using System.Data;
using System.Data.SqlClient;
public class ListBoxSelectionMode : Form
{
ListBox lb;
RadioButton rdoMultiExtended;
RadioButton rdoMultiSimple;
RadioButton rdoMultiOne;
TextBox txtTop;
Button btnTop;
public ListBoxSelectionMode()
{
int xSize, ySize;
Size = new Size(300,400);
lb = new ListBox();
lb.Parent = this;
lb.Location = new Point(10,10);
lb.Size = new Size(ClientSize.Width - 20, Height - 200);
lb.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right | AnchorStyles.Bottom;
lb.BorderStyle = BorderStyle.Fixed3D;
lb.MultiColumn = true;
lb.ScrollAlwaysVisible = true;
GroupBox grpMulti = new GroupBox();
grpMulti.Parent = this;
grpMulti.Text = "MultiSelect";
grpMulti.Location = new Point(lb.Left, lb.Bottom + 25);
grpMulti.Anchor = AnchorStyles.Left | AnchorStyles.Bottom;
rdoMultiOne = new RadioButton();
rdoMultiOne.Parent = grpMulti;
rdoMultiOne.Text = "One";
rdoMultiOne.Tag = SelectionMode.One;
rdoMultiOne.Checked = true;
rdoMultiOne.Location = new Point(10,15);
rdoMultiOne.CheckedChanged += new System.EventHandler(rdoMulti_CheckedChanged);
rdoMultiSimple = new RadioButton();
rdoMultiSimple.Parent = grpMulti;
rdoMultiSimple.Text = "Multi-Simple";
rdoMultiSimple.Tag = SelectionMode.MultiSimple;
rdoMultiSimple.Location = new Point(10, rdoMultiOne.Bottom);
rdoMultiSimple.CheckedChanged += new System.EventHandler(rdoMulti_CheckedChanged);
rdoMultiExtended = new RadioButton();
rdoMultiExtended.Parent = grpMulti;
rdoMultiExtended.Text = "Multi-Extended";
rdoMultiExtended.Tag = SelectionMode.MultiExtended;
rdoMultiExtended.Location = new Point(10, rdoMultiSimple.Bottom);
rdoMultiExtended.CheckedChanged += new System.EventHandler(rdoMulti_CheckedChanged);
xSize = (int)(Font.Height * .75) * rdoMultiExtended.Text.Length;
ySize = ((int)rdoMultiOne.Height * 3) + 20;
grpMulti.Size = new Size(xSize, ySize);
Panel pnlTop = new Panel();
pnlTop.Parent = this;
pnlTop.Location = new Point(lb.Left, grpMulti.Bottom + 10);
pnlTop.Anchor = AnchorStyles.Left | AnchorStyles.Bottom;
Label lblTop = new Label();
lblTop.Parent = pnlTop;
lblTop.Text = "TopIndex: ";
xSize = ((int)(Font.Height * .5) * lblTop.Text.Length);
lblTop.Size = new Size(xSize, Font.Height + 10);
txtTop = new TextBox();
txtTop.Parent = pnlTop;
txtTop.Location = new Point(lblTop.Right, lblTop.Top);
txtTop.Text = lb.TopIndex.ToString();
txtTop.Size = new Size((int)(Font.Height * .75) * 3,
Font.Height + 10);
btnTop = new Button();
btnTop.Parent = pnlTop;
btnTop.Text = "Update";
btnTop.Location = new Point(txtTop.Right + 10, txtTop.Top);
btnTop.Click += new System.EventHandler(btnTop_Click);
lb.Items.Add("12345");
lb.Items.Add("67890");
lb.Items.Add("7890");
lb.Items.Add("890");
}
static void Main()
{
Application.Run(new ListBoxSelectionMode());
}
private void rdoMulti_CheckedChanged(object sender, EventArgs e)
{
RadioButton rdo = (RadioButton)sender;
lb.SelectionMode = (SelectionMode)rdo.Tag;
}
private void btnTop_Click(object sender, EventArgs e)
{
txtTop.Text = lb.TopIndex.ToString();
}
}