winform 里有很多textbox 我如何可以批量的赋值以及 保存

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了winform 里有很多textbox 我如何可以批量的赋值以及 保存相关的知识,希望对你有一定的参考价值。

一个一个的赋值 一个一个的保存很麻烦啊?而且DS一个一个对应的赋值繁琐。
还是不行啊 你们呢说的也没解决问题、这个问题我也想了很久还是一样的。
没有简便方法 ,很多 而且和数据库没有直接的规律。只是数据路里有对应的字段。
或者就不能用textbox换成其他控件。

靠服务器端会占用太多资源了吧,建议用javascript
document.getElementsByTagName("TagName") 获取页面标签元素
value属性就是赋值...获得的是一个数组,要循环赋值

具体代码:
<script language="javascript" type="text/javascript">
var inPuts=document.getElementsByTagName("input"); //获取页面所有input标签元素,inPuts类型会自动设为数组
for(var i=0;i<inPuts.length;i++) //遍历inPuts数组

if(inPuts[i].type=="text") //判断类型是否为文本框

inPuts[i].value=" "; //为文本框赋值


</script>
获取的标签是input,不是textbox,因为经过服务器的解析编译后,textbox在浏览器中是会被解析编译为<input type="text" />的

放在</body>和</html>之间吧
参考技术A D:\WindowsApplication6\WindowsApplication6\bin\Debug\XData.xml
<?xml version="1.0" encoding="utf-8" ?>
<TextBoxValues>
<txt Name="txt1">aaa</txt>
<txt Name="txt2">bbb</txt>
<txt Name="txt3">ccc</txt>
<txt Name="txt4">ddd</txt>
<txt Name="txt5">fff</txt>
<txt Name="txt6">eee</txt>
<txt Name="txt7">ggg</txt>
<txt Name="txt8">hhh</txt>
<txt Name="txt9">jjj</txt>
<txt Name="txt10">kkk</txt>
</TextBoxValues>

public partial class Form1 : Form

Dictionary<string, string> txtValue;
XmlDocument doc;
public Form1()

InitializeComponent();
txtValue = new Dictionary<string, string>();
doc = new XmlDocument();

private void Form1_Load(object sender, EventArgs e)

foreach (Control c in this.Controls)

if (c is TextBox)

txtValue.Add(c.Name, null);


doc.Load(Application.StartupPath + "\\XData.xml");
foreach (XmlNode v in doc.ChildNodes[1].ChildNodes)

txtValue[v.Attributes[0].Value] = v.InnerText;


//Textbox控件名称要与XML中的Name名称一致,
思路是这样的,根据控件名称生成Xml和数据字典,key控件名称,value控件值,
存取根据字典值
//加载值
private void button1_Click(object sender, EventArgs e)

foreach (Control c in this.Controls)

if (c is TextBox)

((TextBox)c).Text = txtValue[c.Name];




//保存到字典
你也可以根据字典值保存到XML就永久保存了
private void button2_Click(object sender, EventArgs e)

foreach (Control c in this.Controls)

if (c is TextBox)

txtValue[c.Name]=((TextBox)c).Text;



参考技术B 1、在工程中导入下面两个文件ADOConn.h和ADOConn.cpp(见后面)
2、在需要调用数据库的CPP文件开始包含头文件 #include "ADOConn.h"(数据库连接的代码已封装到ADOConn.cpp中的OnInitADOConn方法)
3、按照数据库连接-》数据库操作-》断开连接的步骤调用(以从数据库中获取数据为例)
ADOConn m_ADOConn1; // 定义ADOConn类对象
m_ADOConn1.OnInitADOConn(); //连接数据库
CString sql1;
sql1.Format("select top 20 职务,count(职务) as NameCount from tb_holidays group by 职务 order by 'NameCount' desc");
//设置查询语句
m_ADOConn1.m_pRecordset = m_ADOConn1.GetRecordSet((_bstr_t)sql1); //查询
while(!m_ADOConn1.m_pRecordset->adoEOF)

CString temp;本回答被提问者采纳
参考技术C 如果你的TextBox名称是很有规律性或者能够知道要改的TextBox名的话,可以这样做:
for (int i = 1; i <= 30; i++)

Control myControl1 = FindControl("TextBox" + i.ToString());
myControl1.Text = "";

如果有什么问题,可以继续深入讨论。
参考技术D 遍历所有的textbox相信上面各位仁兄说的都可以,但是对指定的textbox赋值各位没有讲明白,
其实很简单的,只要把需要保存和赋值的textbox设置成有规律的id,问题不就很简单了嘛,比如说按钮btn1操作的textbox有三个,那这三个textbox的id就可以写成txt_btn1_1,txt_btn1_2,txt_btn1_3,
这样在遍历的时候就可以根据id找出指定的textbox.

如何在WinForms中制作自动滚动多行TextBox? [重复]

可能重复: How do I automatically scroll to the bottom of a multiline text box?

我使用多线TextBox在从BackgroundWorker到达的新行中输出一些信息。

每次新线路到达时,我可以将其滚动到最底部吗?

默认情况下,它似乎恰恰相反 - 每次新行到达并且Text属性发生更改时,它会滚动到第一行。

答案

设置TextBox属性:

Multiline = True;
ScrollBars = Both;

要自动滚动TextChanged事件:

textBox1.SelectionStart = textBox1.Text.Length;
textBox1.ScrollToCaret();

以上是关于winform 里有很多textbox 我如何可以批量的赋值以及 保存的主要内容,如果未能解决你的问题,请参考以下文章

如何从另一个类访问 Winform 文本框控件?

C#如何将console的输出转为winForm textBox输出啊??

C# winform 在一个窗体中如何设置另一个窗体的TextBox的值

c#winform textBox下面的下拉框是如何制作的

c# winform 多条件查询 。

winform 窗体退出前判断表单是不是修改过,窗体上的控件有很多个,TextBox,combox,datagridview