关于C#根据名字,调用多个控件的问题。

我定义了81个textbox,分别命名为tbx11,tbx12,。。。tbx19,tbx21,。。tbx29,一直到tbx99,我现在想用一个循环调用这些textbox,用它的text值赋值给一个数组,怎么通过调用控件的名字就能调用这些控件。??
比如一个9*9的textbox矩阵 我有一组变量i,j;我如何通过这组i,j,就能使用第i行,第j列的textbox,而所有textbox的命名方式都像上面说的。不是遍历。

你其实一开始设计就有问题,那81个textbox可以直接在代码中动态创建,并不需要你一开始就直接画到窗体上(如果用代码创建,就可以直接将这些textbox放入数组或者list中),这样就可以简单的通过类似于myTextArr[i]来调用其中的某一个textbox

至于查找控件,可以用类似这种方法
private Control findControl(string controlName)
{
foreach (Control c in Controls)
{
if (c.Name == controlName)
{
return c;
}
}
return null;
}
用的时候,比如
TextBox t = (TextBox)findControl("textBox1");
if (t != null) t.Text = "hello";
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-07-17
private void btnEach_Click(object sender, EventArgs e)
{
StringBuilder sb = new StringBuilder();
foreach (Control contr in this.Controls)
{
if (contr is TextBox)
{
sb.Append(contr.Text);
}
}
MessageBox.Show(sb.ToString());
}

// 我之前的一个小例子,希望对你有帮助追问

首先 谢谢你的回答哈 但是好像大家都没理解我问什么 是这样的 比如一个9*9的textbox矩阵 我有一组变量i,j;我如何通过这组i,j,就能使用第i行,第j列的textbox,而所有textbox的命名方式都像上面说的。不是遍历。

第2个回答  2012-07-17
foreach遍历,如果是文本框,获取其id看看,要是在tbx11~tbx99之间,将其text属性记录下来就行。
FindControl("tbx"+i.ToString()+j.ToString()) as TextBox;

关于C#根据名字,调用多个控件的问题。
你其实一开始设计就有问题,那81个textbox可以直接在代码中动态创建,并不需要你一开始就直接画到窗体上(如果用代码创建,就可以直接将这些textbox放入数组或者list中),这样就可以简单的通过类似于myTextArr[i]来调用其中的某一个textbox 至于查找控件,可以用类似这种方法 private Control findControl(str...

C# 根据控件NAME名字 操作控件
string name = "label1";object o = this.GetType().GetField(name, System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.IgnoreCase).GetValue(this);((Label)o).Text = "hello world!";...

C#控件的name属性的疑问?
而且同一个变量名可以指向textbox1也可以指向textbox2,所以变量名并不能用来唯一标识一个控件。

c#的winform,怎么根据控件的名字获取控件属性!
1、使用C# 窗体中自带的方法public Control[] Find(string key, bool searchAllChildren)。2、自己写个foreach 循环方法 foreach (Control control in this.Controls)。3、直接父级查找子控件this.Controls[key];如果是嵌套的子控件,则需在自己写个递归方法方法获取。4、最后运行,根据自己的实际需要...

C#中一个窗体调用其他窗体中控件及变量的问题
首先,最重要的是将你想要改动的窗体二中的属性或函数由默认的private改为public 而后,在窗体一中直接调用窗体二中的相关对象即可。 如,用窗体一中的两个button来控制窗体二中textbox中的文本显示,方法如下: private System.Windows.Forms.TextBox textBox2;改为 public System.Windows.Forms.TextBox ...

c#的winform怎么根据控件的名字获取控件属性?
C#实现根据指定容器和控件名字获得控件的方法,在进行C#应用程序设计时有一定的借鉴价值。分享给大家供大家参考借鉴。具体实现方法如下:功能代码如下:1、\/\/\/ 2、\/\/\/ 根据指定容器和控件名字,获得控件 3、\/\/\/ 4、\/\/\/ 容器 5、\/\/\/ 控件名字 6、\/\/\/ <returns>控件<\/returns> 7、private ob...

C#中怎么调用另外一个窗体上的控件
这个问题,可以这样来:主窗体为:primaryfrom 另一个窗体为:from1 下面中的 index 为索引值 在主窗体primaryfrom中调用窗体from1中控件的属性 from1 f1 = new from1();\/\/假如索引到的是label控件 f1.controls[index].text="我的名字是primaryfrom窗体设置的"f1.show();\/\/模式窗口为:f1....

C#中如何在一个窗体中调用另一个窗体控件中的数据?
1、首先在窗体上增加如下的三个控件,两个label,一个button,我们要实现的效果是label1每一秒增加一个数字,label2每点击一下button增加一下数字。2、用到了定时任务,如下是两个定时任务的代码,一个是手动定时任务,就是我们点击按钮以后执行的,另一个是自动的订单是任务,程序运行以后执行的。3、...

c#中 如何调用不同窗口的控件属性
TextBox 是一种控件,既文本框控件 ,至于如何调用不同窗口的控件属性 ,可以有两种情况:1. 你的程序是一个MDI多文档界面 ,可以指定窗体的父子关系来实现互相访问,Form1 frmTemp = new Form1 ( ) ;frmTemp.MdiParent = this ;frmTemp.Show ( ) ;2.存在属于关于 ,实例化一个窗体类的对象,Form2...

C#界面设计的时候将多个控件选中一起对齐因为在不同panel里有按钮不见...
在视图菜单-其它窗口-文档大纲,列出了你所有的控件。选中那个控件。可以按方向键移动回来。也可以在属性窗口。改location 。还可以从属性窗口上边的下拉列表框中选择要操作的控件。

相似回答