Если вы имеете в виду 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>
A Radiobuttonlistпозволяет пользователю выбрать только один элемент по умолчанию. Выбранный элемент сохраняется в RadioButtonList1.SelectedItem
.
РЕДАКТИРОВАТЬ : так как вы получили подтверждение, что это проблема с Winform, вам нужна GroupBox , чтобы пользователь мог выбрать только один.
Чтобы динамически создавать радиокнопки из источника данных и добавлять их в Groupbox, взгляните на мой пример кода:
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
Запомнитьчто вы должны заменить мои объекты данных вашими.