求遍历window窗体中所有textbox的方法。 foreach(object obj in this.Controls) { if (obj.GetType() == typeof(TextBox)) { //.... }} 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 private Control FindControl(Control container, string controlName) { if (container.Name == controlName) { return container; } Control findControl = null; foreach (Control control in container.Controls) { Console.WriteLine(control.Name); if (control.Controls.Count == 0) { if (control.Name == controlName) { findControl = control; break; } } else { findControl = FindControl(control, controlName); if (findControl != null) { break; } } } return findControl; }这个是根据控件名称查找控件的例子你稍微改改就可以了 foreach(object obj in this.Controls) { if (obj.GetType() == typeof(TextBox)) { //.... }}这个应该行。 foreach(object obj in this.Controls) { if (obj.GetType() == typeof(TextBox)) { hashtable.add(obj.name,obj .text); }} 应该是一个递归调用。如果Form上放了N多的Panel或者Container,就要考虑了楼上所有的回答都没考虑这些东西。 递归, 递归的时候看看 该控件还有没有子控件 。 private void a(控件 ){if (有子控件){a(子控件)}if (控件类型为文本框){找到文本框 }} foreach form controls~~,ls都说光了~~ csrwgs(你血所加?) ( ) 应该是一个递归调用。如果Form上放了N多的Panel或者Container,就要考虑了楼上所有的回答都没考虑这些东西。======================================lovefootball(蟑螂(生活就是扯淡--做人要放低姿态)) ( ) 说的 难道没有考虑其他容器的问题? 呵呵,麻烦看清楚了再说 轉自網上一位高手,先謝謝他!他做的是回車光標移到下一個文本框。裡面的方法原理應該是一樣的 /// <summary> /// 光標移到下一個文本框 /// </summary> /// <param name="keyData"></param> /// <returns></returns> protected override bool ProcessDialogKey(Keys keyData) { if (keyData == Keys.Enter && this.ActiveControl is TextBox) { Control ctr = this.GetNextControl(this.ActiveControl, true); while (!(ctr is TextBox)) { ctr = this.GetNextControl(ctr, true); } if (ctr is TextBox) { ctr.Select(); } } return base.ProcessDialogKey(keyData); } 1楼的已经是很正点的办法了.想保存起来,可以考虑用TextBox的数组,比用hashTable效率高 csrwgs 说的对,要用递归。 两个多月了还不结??csrwgs:应该是一个递归调用。如果Form上放了N多的Panel或者Container,就要考虑了楼上所有的回答都没考虑这些东西。----------------》不好意思我好像就是递归~~~麻烦先看看别人的代码在说话~~~~ 关于EnterpriseLibrary中的config 问题 .NET 平台下 开发WinForm程序 求職 如何用在后台程序移除菜单中的menuItem项? 菜鸟300问之一:数组-------------在线等答案 C#怎么读取Sybase数据库Image类型字段值 textbox 下面划条线的问题 窗体上的如button textbox之类的控件的绘制的原理是什么 关于ConditionalAttribute 异步写操作的问题,请教了 sockets初学,为什么结束不了线程,为什么要抛出那样的异常??? 简单问题,分很多 C#中怎么gridview中的数据导出成文本?
{
if (container.Name == controlName)
{
return container;
}
Control findControl = null;
foreach (Control control in container.Controls)
{
Console.WriteLine(control.Name);
if (control.Controls.Count == 0)
{
if (control.Name == controlName)
{
findControl = control;
break;
}
}
else
{
findControl = FindControl(control, controlName);
if (findControl != null)
{
break;
}
}
}
return findControl;
}这个是根据控件名称查找控件的例子
你稍微改改就可以了
{
if (obj.GetType() == typeof(TextBox))
{
//....
}
}
这个应该行。
{
if (obj.GetType() == typeof(TextBox))
{
hashtable.add(obj.name,obj .text);
}
}
如果Form上放了N多的Panel或者Container,就要考虑了楼上所有的回答都没考虑这些东西。
private void a(控件 )
{
if (有子控件)
{
a(子控件)
}
if (控件类型为文本框)
{
找到文本框
}
}
应该是一个递归调用。
如果Form上放了N多的Panel或者Container,就要考虑了楼上所有的回答都没考虑这些东西。======================================lovefootball(蟑螂(生活就是扯淡--做人要放低姿态)) ( ) 说的 难道没有考虑其他容器的问题? 呵呵,麻烦看清楚了再说
他做的是回車光標移到下一個文本框。裡面的方法原理應該是一樣的 /// <summary>
/// 光標移到下一個文本框
/// </summary>
/// <param name="keyData"></param>
/// <returns></returns>
protected override bool ProcessDialogKey(Keys keyData)
{
if (keyData == Keys.Enter && this.ActiveControl is TextBox)
{
Control ctr = this.GetNextControl(this.ActiveControl, true);
while (!(ctr is TextBox))
{
ctr = this.GetNextControl(ctr, true);
}
if (ctr is TextBox)
{
ctr.Select();
}
} return base.ProcessDialogKey(keyData);
}
应该是一个递归调用。
如果Form上放了N多的Panel或者Container,就要考虑了楼上所有的回答都没考虑这些东西。
----------------》
不好意思
我好像就是递归~~~
麻烦先看看别人的代码在说话~~~~