我目前正在c#中的winform上创建一个网上商店。有没有办法通过一个控件来控制所有单选按钮?而不是为每个单选按钮(C#)传递控制
目前我正在创建一个“购物篮”相关文本框,如果用户单击某个单选按钮,文本框会在文本框中显示该产品的说明。
我已经将组单选框中的单选按钮分组,并希望知道是否有任何相当于所有单选按钮的'SelectedIndex'命令?谢谢。
我目前正在c#中的winform上创建一个网上商店。有没有办法通过一个控件来控制所有单选按钮?而不是为每个单选按钮(C#)传递控制
目前我正在创建一个“购物篮”相关文本框,如果用户单击某个单选按钮,文本框会在文本框中显示该产品的说明。
我已经将组单选框中的单选按钮分组,并希望知道是否有任何相当于所有单选按钮的'SelectedIndex'命令?谢谢。
只需将所有单选按钮订阅到同一事件即可。然后,您可以采取行动对其进行检查并采取相应行动,而不是为每个按钮设置重复代码。
下面是一个简单的例子,设置一个文本框的Text
属性来显示哪个被选中。
Form类
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void radioButtons_CheckedChanged(object sender, EventArgs e)
{
//Do whatever you need to do here. I'm simple setting some text based off
//the name of the checked radio button.
System.Windows.Forms.RadioButton rb = (sender as System.Windows.Forms.RadioButton);
textBox1.Text = $"{rb.Name} is checked!";
}
}
在了.Designer.cs文件
//Note that the EventHandler for each is the same.
this.radioButton3.CheckedChanged += new System.EventHandler(this.radioButtons_CheckedChanged);
this.radioButton2.CheckedChanged += new System.EventHandler(this.radioButtons_CheckedChanged);
this.radioButton1.CheckedChanged += new System.EventHandler(this.radioButtons_CheckedChanged);
这可以工作,有没有一种方法,我可以在列表格式的文本框中的值?所以用户点击say 3单选按钮,这会在文本框中创建3个产品的列表? 我感觉好像我可能已经复杂了,所以如果没有其他的方式,我将不得不看看使用按钮来代替。谢谢! – TheBiz
@TheBiz - 首先,就像我在对问题本身的评论中提到的那样,如果可以选择多个选项,请选择除单选按钮之外的其他选项。如果他们位于表单上的同一区域,则一次只能选择1个。否则,复选框就是更好的用户体验。但是要回答你的问题,是的,只需使文本框成为多行,并在事件中根据检查的内容构建文本。 –
好的,这对我来说非常合适,因为我已经对产品进行了分类,因此单选按钮可以高效地工作。然而,我已经使用你的代码和我自己的代码一起在文本框中输入一个值,但它显示的是'设计名'而不是实际的产品。我已经使用类来定义我的产品,我将如何输入这个,所以当我点击一个单选按钮时,它会显示产品而不是按钮的设计名称?谢谢(对不起,如果这是一个非常简单的问题) – TheBiz
如果您希望能够一次选择多个单选按钮,我建议您使用复选框而不是单选按钮。您可以将其所有事件分配给同一个事件,并控制选中哪个复选框。
private void checkBox_CheckedChanged(object sender, EventArgs e)
{
CheckBox checkBoxControl = (CheckBox) sender; // You can use this variable to see which one of the checkbox is checked.
}
订阅所有单选按钮相同的'CheckedChanged'事件。 –
@DangerZone你能举一个这样的例子吗?附:一次可以选择多个单选按钮。谢谢! – TheBiz
如果可以一次选择多个,则不应将它们一起包含在同一个组合框中。改为使用复选框。 –