あなたにとって最良のオプションはDataGridView、2つの列で使用することだと思います:
DataGridViewButtonColumn、AutoSizeMode = AllCells
DataGridViewTextBoxColumn、ReadOnly = true、AutoSizeMode = 塗りつぶし
またRowHeadersVisible、ColumnHeadersVisible偽に。結果:

コード:
string[] members = { "Beverages", "Condiments", "Confections" };
dataGridView1.DataSource = members.Select((x, i) => new { Value = x, Index = i })
.ToList();
DataPropertyNameまた、列をインデックスと値に設定する必要があります。
更新 (.NET 2.0 の場合):
string[] members = { "Beverages", "Condiments", "Confections" };
dataGridView1.AutoGenerateColumns = false;
dataGridView1.DataSource = members;
CellFormatting イベントをサブスクライブします。
void dataGridView1_CellFormatting(object sender,
DataGridViewCellFormattingEventArgs e)
{
if (e.ColumnIndex == 0)
{
e.Value = e.RowIndex;
return;
}
e.Value = dataGridView1.Rows[e.RowIndex].DataBoundItem;
}