Если вы имеете в виду ASP.Net RadioButtonList-Control попробовать этот пример:
ASPX (вы можете настроить источник данных на дизайнера (показать смарт-тег):
<asp:RadioButtonList ID="RadioButtonList1" runat="server" DataSourceID="SqlDataSource1"
DataTextField="ClaimStatusName" DataValueField="idClaimStatus">
</asp:RadioButtonList>
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:RM2ConnectionString %>"
SelectCommand="SELECT [idClaimStatus], [ClaimStatusName] FROM [dimClaimStatus]">
</asp:SqlDataSource>
RadioButtonList позволяет пользователь может выбрать только один элемент по умолчанию выбранный товар хранится в RadioButtonList1.SelectedItem
EDIT:.. Как вы clairified теперь, когда это проблема с Winform, вам нужен GroupBox, чтобы пользователь мог выбрать только один.
Чтобы создать Radiobuttons динамически из источника данных и добавить их к Groupbox, посмотрите на мою samplecode:
Private Sub Form_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim allStatus As DataSet2.StatusDataTable = New DataSet2TableAdapters.StatusTableAdapter().GetData()
For i As Int32 = 0 To allStatus.Rows.Count - 1
Dim status As DataSet2.StatusRow = allStatus(i)
Dim rb As New RadioButton()
rb.Text = status.ClaimStatusName
rb.Tag = status.idClaimStatus
rb.Location = New Point(Me.GroupBox1.Location.X + 5, Me.GroupBox1.Location.Y + i * rb.Height)
AddHandler rb.CheckedChanged, AddressOf RBCheckedChanged
Me.GroupBox1.Controls.Add(rb)
Next
Me.GroupBox1.Visible = allStatus.Rows.Count > 0
If allStatus.Rows.Count > 0 Then
Dim width, height As Int32
Dim lastRB As Control = Me.GroupBox1.Controls(GroupBox1.Controls.Count - 1)
width = lastRB.Width + 20
height = lastRB.Height
Me.GroupBox1.Size = New Size(width, allStatus.Rows.Count * height + 20)
End If
End Sub
Private Sub RBCheckedChanged(ByVal sender As Object, ByVal e As EventArgs)
Dim source As RadioButton = DirectCast(sender, RadioButton)
Dim checkedRB As RadioButton = getCheckedRadioButton(Me.GroupBox1)
'source and checkedRB are the same objetcs because we are in CheckedChanged-Event'
'but getCheckedRadioButton-function works from everywhere'
End Sub
Private Function getCheckedRadioButton(ByVal group As GroupBox) As RadioButton
For Each ctrl As Control In group.Controls
If TypeOf ctrl Is RadioButton Then
If DirectCast(ctrl, RadioButton).Checked Then Return DirectCast(ctrl, RadioButton)
End If
Next
Return Nothing
End Function
Помните, что вы должны заменить свои данные объекты с вашими.
Является ли это веб-приложение ASP.Net? –
Нет, это в vb.net –
VB.Net - это только язык, а не технология (например, ASP.Net или Windows Forms). Хорошо, тогда см. Мой обновленный ответ. –