网络问题、服务器问题。
1、网络问题。因为网络不畅,在网络信号微弱的时候就容易发生winform的textbox循环显示数据的现象,可以换网络重新加载。
2、服务器问题。winform的服务器出现问题,这时可以将winform的服务器关闭,重新打开,就解决问题了。
在你的窗口里边加这么个方法,你需要的时候执行:
void fillit()
{
for(int i=1;i<=5;i++)
{
TextBox temp = findControl("TextBox"+iToString());//FindControl是大写小写不记得了。不过是有这么个方法
tempText=tempText==""tempText:"0";
}
}
楼主你好:
要解决你上面的问题,其实有个很简单的方法,你可以把你这一堆textbox都放到一个Panel中,
然后把这个Panel传入到你新写的那个类中,
我帮你写了一个方法,已经可以实现你要的东西,方法如下:
首先在你新写的类中引用:using SystemWindowsForms;
using System;
using SystemCollectionsGeneric;
using SystemLinq;
using SystemText;
using SystemWindowsForms;
namespace FormTestBusinessLayyer
{
public class BusinessCommon
{
/// <summary>
/// 获取页面传入容器中所有TextBox值及名字
/// </summary>
/// <param name="panInput"></param>
/// <returns></returns>
public static Dictionary<string, string> GetInputValue(Panel panInput)
{
Dictionary<string, string> dicReturn = new Dictionary<string, string>();
if (panInput != null)
{
foreach (Control col in panInputControls)
{
if (colGetType()Name == "TextBox")
{
dicReturnAdd(colName, colText);
}
}
}
return dicReturn;
}
}
}
}
页面上引用的地放如下:
namespace FormTest
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
Dictionary<string, string> strInput = BusinessCommonGetInputValue(panel1);
}
}
}
panel1是你窗体Panel的名字,
希望对你有帮助,望采纳,非常感谢,谢谢
你可以在窗体内写一个方法,用来设置这个TextBox的值,然后在创建线程的时候,将这个方法传递给线程,这样在线程中就可以直接调用了
另外这个方法最好用Invoke()方法去实现
建议使用控件数组。
举个例子:判断这些文本框中的数字是否大于10,若是的话则将这些文本框中的内容改成红色的字体
将TB1、TB2、TB3创建为一个名为Text1的控件数组
For i=0 to ListCount-1
If Val(Text1(i)Text)>10 Then Text1(i)ForeColor=VbRed
Next i
以上就是关于winform的textbox循环显示数据全部的内容,包括:winform的textbox循环显示数据、C#如何遍历所有的TextBox、C# 怎么在另一个类中获取窗体内textbox控件的text属性值等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)