实现单选按钮网格的最佳方法是什么,这样每列只能选择一个选项,每行只能选择一个选项?
答案 0 :(得分:2)
1D阵列的单选按钮阵列。每一行(或列)都将使用正常的单选按钮功能,而每个列(或行)都将通过在切换单个单选按钮时调用的循环进行更新。
答案 1 :(得分:0)
这样的东西?
using System;
using System.Drawing;
using System.Windows.Forms;
class Program {
static RadioButton[] bs = new RadioButton[9];
static void HandleCheckedChanged (object o, EventArgs a) {
RadioButton b = o as RadioButton;
if (b.Checked) {
Console.WriteLine(Array.IndexOf(bs, b));
}
}
static void Main () {
Form f = new Form();
int x = 0;
int y = 0;
int i = 0;
int n = bs.Length;
while (i < n) {
bs[i] = new RadioButton();
bs[i].Parent = f;
bs[i].Location = new Point(x, y);
bs[i].CheckedChanged += new EventHandler(HandleCheckedChanged);
if ((i % 3) == 2) {
x = 0;
y += bs[i].Height;
} else {
x += bs[i].Width;
}
i++;
}
Application.Run(f);
}
}
此致 tamberg
答案 2 :(得分:0)
您可以使用自定义集合进行处理并对数字单元格进行数据绑定。
每个子项都有行的属性和列的属性以及true / false值标志,当通过单击或按键更改为true时,它会引发事件。
集合类中的逻辑将响应值更改并循环遍历同一行和列中的其他子项,以通知它们应该为false。
如果您不想使用数据绑定,也可以使用一组用户控件来执行此操作。