做了20个textbox , 10个分别为 a1,a2....a10,还有10个b1,b2.....b10(控件名)
现在做的是,textbox 鼠标单击显示为 "○"或"△"或"×" ,而实际值为"2"或"1"或"0"。
现在要做的是,我要将a1到a10 的值都相加 到num1 ,b1到b10的值都相加到num2 ,有没有什么直接的方法?也许实现这样的效果用我现在这样的方法并不好,不过因为是初学,既然在做了就决定先把这个方法用好,然后下次再改。
附上代码:
鼠标单击事件:
TextBox temp = (TextBox)sender;
switch(temp.Text){
case "":temp.Text="○"; break;
case "○":temp.Text="△";
break;
case "△":temp.Text="×";
break; case "×":temp.Text="○";
break;
}
将textbox显示的转为 数值函数:
private int typen(string n)
{
int reStr = 0;
switch (n)
{
case "○":
reStr = 2;
break;
case "△":
reStr = 1;
break;
case "×":
reStr= 0;
break;
default:
reStr= 0;
break;
}
return reStr;
}
我要做的:int a1=typen(a1.Text);
........到 a10=typen(a10.text)
int b1=typen(b1.Text);
........到 b10=typen(b10.text)
int num1=a1+a2....+a10;
int num2=b1+b2....+b10;
这样写肯定太繁琐,请问该如何解决?
应该还有什么其他解决办法可以处理我所要实现的,或者我上面有走弯路的,还请不吝告之,谢过。。
当然最好先能够解决我现在这个方法所该如何实现。
现在做的是,textbox 鼠标单击显示为 "○"或"△"或"×" ,而实际值为"2"或"1"或"0"。
现在要做的是,我要将a1到a10 的值都相加 到num1 ,b1到b10的值都相加到num2 ,有没有什么直接的方法?也许实现这样的效果用我现在这样的方法并不好,不过因为是初学,既然在做了就决定先把这个方法用好,然后下次再改。
附上代码:
鼠标单击事件:
TextBox temp = (TextBox)sender;
switch(temp.Text){
case "":temp.Text="○"; break;
case "○":temp.Text="△";
break;
case "△":temp.Text="×";
break; case "×":temp.Text="○";
break;
}
将textbox显示的转为 数值函数:
private int typen(string n)
{
int reStr = 0;
switch (n)
{
case "○":
reStr = 2;
break;
case "△":
reStr = 1;
break;
case "×":
reStr= 0;
break;
default:
reStr= 0;
break;
}
return reStr;
}
我要做的:int a1=typen(a1.Text);
........到 a10=typen(a10.text)
int b1=typen(b1.Text);
........到 b10=typen(b10.text)
int num1=a1+a2....+a10;
int num2=b1+b2....+b10;
这样写肯定太繁琐,请问该如何解决?
应该还有什么其他解决办法可以处理我所要实现的,或者我上面有走弯路的,还请不吝告之,谢过。。
当然最好先能够解决我现在这个方法所该如何实现。
{
public Form1()
{
InitializeComponent();
this.a1.Click += new EventHandler(TextBox_Click);
this.a2.Click += new EventHandler(TextBox_Click);
this.a3.Click += new EventHandler(TextBox_Click);
this.a4.Click += new EventHandler(TextBox_Click);
this.a5.Click += new EventHandler(TextBox_Click);
this.a6.Click += new EventHandler(TextBox_Click);
this.a7.Click += new EventHandler(TextBox_Click);
this.a8.Click += new EventHandler(TextBox_Click);
this.a9.Click += new EventHandler(TextBox_Click);
this.a10.Click += new EventHandler(TextBox_Click);
this.b1.Click += new EventHandler(TextBox_Click);
this.b2.Click += new EventHandler(TextBox_Click);
this.b3.Click += new EventHandler(TextBox_Click);
this.b4.Click += new EventHandler(TextBox_Click);
this.b5.Click += new EventHandler(TextBox_Click);
this.b6.Click += new EventHandler(TextBox_Click);
this.b7.Click += new EventHandler(TextBox_Click);
this.b8.Click += new EventHandler(TextBox_Click);
this.b9.Click += new EventHandler(TextBox_Click);
this.b10.Click += new EventHandler(TextBox_Click);
}private void TextBox_Click(object sender, EventArgs e)
{
TextBox temp = (TextBox)sender;
switch (temp.Text)
{
case "": temp.Text = "○"; break;
case "○": temp.Text = "△";
break;
case "△": temp.Text = "×";
break;
case "×": temp.Text = "○";
break;
}
}private int typen(string n)
{
int reStr = 0;
switch (n)
{
case "○":
reStr = 2;
break;
case "△":
reStr = 1;
break;
case "×":
reStr = 0;
break;
default:
reStr = 0;
break;
}
return reStr;
}private void button1_Click(object sender, EventArgs e)
{
int num1 = 0, num2 = 0;
for (int i = 1; i < 10; i++)
{
TextBox a = (TextBox)this.Controls.Find("a" + i.ToString(), true)[0];
if (a != null)
{
num1 += typen(a.Text);
}
TextBox b = (TextBox)this.Controls.Find("b" + i.ToString(), true)[0];
if (b != null)
{
num1 += typen(b.Text);
}
}}
谢谢诸位,特别是tjvictor(下一站----星星)最后的代码是:
int num1 = 0, num2 = 0;
TextBox []a = new TextBox[]{a1,a2,a3,a4,a5,a6,a7,a8,a9,a10};
TextBox []b = new TextBox[]{b1,b2,b3,b4,b5,b6,b7,b8,b9,b10};
foreach(TextBox cc in a){
if(cc.Text!=null){
num1+=typen(cc.Text);
}
}
foreach(TextBox cc in b)
{
if(cc.Text!=null)
{
num2+=typen(cc.Text);
}
}
这里没有用到你说的this.Controls.addrange(textBox),不知道哪里还可以修改及更完善的吗?