一个低级的问题,高手可别笑话我这新手。在窗体上定义了几个TextBox和label,想用数组的方式先连续从TextBox的TEXT属性中获取数值,然后经过排序,连续赋值给label的TEXT属性显示。我写的代码是这样的:int[] a = new int[4];
for (int i = 0; i < 4; i++)
a[i] = textBox(i + 1).Text;
for (int i = 0; i < 4; i++)
label(i+1).Text = a[i];
编译无法通过,请各位高手帮忙修改一下。
for (int i = 0; i < 4; i++)
a[i] = textBox(i + 1).Text;
for (int i = 0; i < 4; i++)
label(i+1).Text = a[i];
编译无法通过,请各位高手帮忙修改一下。
解决方案 »
- vs 2008 编写winform的程序,报.net2.0 Runtime error 5000错误
- C# Winfrom如何编写生成器?
- C#的Bitmap如何控制长宽?
- C# solution中的reference 里的nationalinsturment.common总显示有问题
- 路径中的转义字符怎么处理?
- 我是这样动态取数据的,请问怎么样才能在DELETE 按钮上写代码删除DATAGRID的当前记录?
- 关于构造函数中使用数据库连接
- .NET中如何取得数据库的所有表名(立结)
- 这个问题怎么解决
- 我用的VS2005 Office 2003引入了Interop.Excel.dll但是Microsoft.Office.Interop.Excel却没有怎么回事啊?
- 关于vs2005发布的问题
- c#中如何实现delphi那样: 可以直接在IDE环境上编写数据集的事件过程(如:afterInsert等)
int[] a = new int[4];
for (int i = 0; i < 4; i++)
a[i] = textBox(i + 1).Text; ///这样也行? 不说用一个字符串付给一个整型,根本就没有 textBox(i + 1).Text 这种用法
for (int i = 0; i < 4; i++)
label(i+1).Text = a[i].tostring();// 这里要改一下
int[] a = new int[4];偏偏用小括号来使用
a[i] = textBox(i + 1).Text;莫非是来WR大家智商滴???
Label [] Clabel = new Label [4];
.........
Clabel[0] = new Label();
Clabel[0].text="123";
//设定Clabel[0]位置
........Ctextbox[0] = new TextBox();
Ctextbox[0].Text = Clabel[0].Text;
//设定Ctextbox[0]位置
改后如下:
int[] a = new int[4];
for (int i = 0; i < 4; i++)
{
switch (i)
{
case 0:
a[0] = textBox1.Text;
break;
case 0:
a[1] = textBox2.Text;
break;
case 0:
a[2] = textBox3.Text;
break;
default:
a[3] = textBox4.Text;
break;
}
}for (int i = 0; i < 4; i++)
{
switch (i)
{
case 0:
label1.Text = a[0];
break;
case 1:
label1.Text = a[1];
break;
case 2:
label1.Text = a[2];
break;
case 3:
label1.Text = a[3];
break;
}
}
我是先学了点VB的皮毛,然后刚学C#
WebForm中有个FindControl方法,比较容易实现。
WinForm中没有FindControl方法,可以用递归查找控件,实现类似FindControl的功能。
然后赋值就OK了。
/// <summary>
/// 根据控件名找出容器中的控件,考虑有些控件放在窗体的容器中,采用了递归查找。
/// </summary>
/// <param name="container">控件容器</param>
/// <param name="controlName">控件名称</param>
/// <returns></returns>
private static Control FindControl(Control container, string controlName)
{
Control findControl = null;
foreach(Control control in container.Controls)
{
if (control.Controls.Count == 0)
{
if (control.Name == controlName)
{
findControl = control;
break;
}
}
else
{
findControl = FindControl(control, controlName);
}
}
return findControl;
}
for (int i = 0; i < 4; i++)
{
TextBox tb = (TextBox)FindControl(this, "TextBox" + (i + 1));
a[i] = int.Parse(tb.Text);
}for (int i = 0; i < 4; i++)
{
TextBox tb = (TextBox)FindControl(this, "TextBox" + (i + 1));
tb.Text = a[i].ToString();
}