将列表变量绑定到文本框
本文关键字:文本 绑定 列表 变量 | 更新日期: 2023-09-27 18:00:22
我有一个新问题。我有一个从二进制文件加载列表的代码,我认为我做得对,但我需要让每个变量都显示在自己的文本框中。这是我找不到该怎么做的ting。有人能帮我或告诉我在哪里可以找到信息吗?
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;
using System.Runtime.Serialization.Formatters.Binary;
namespace test
{
public partial class Form1 : Form
{
[Serializable]
public class ore
{
public float Titan;
public float Eperton;
}
ore b1 = null;
ore b2 = null;
public Form1()
{
InitializeComponent();
b2 = new ore();
b1 = new ore();
}
private void textBox1_TextChanged(object sender, EventArgs e)
{
float tempFloat;
if (float.TryParse(textBox1.Text, out tempFloat))
{
b1.Titan = tempFloat;
}
else
MessageBox.Show("uh oh");
}
private void textBox2_TextChanged(object sender, EventArgs e)
{
float tempFloat;
if (float.TryParse(textBox1.Text, out tempFloat))
{
b2.Eperton = tempFloat;
}
else
MessageBox.Show("uh oh");
}
private void button1_Click(object sender, EventArgs e)
{
List<ore> oreData = new List<ore>();
oreData.Add(b1);
oreData.Add(b2);
FileStream fs = new FileStream("ore.dat", FileMode.Create);
BinaryFormatter bf = new BinaryFormatter();
bf.Serialize(fs, oreData);
fs.Close();
}
private void textBox3_TextChanged(object sender, EventArgs e)
{
}
private void textBox4_TextChanged(object sender, EventArgs e)
{
}
List<ore> books = new List<ore>();
private void button2_Click(object sender, EventArgs e)
{
FileStream fs = new FileStream("ore.dat", FileMode.Open);
BinaryFormatter bf = new BinaryFormatter();
List<ore> books = (List<ore>)bf.Deserialize(fs);
fs.Close();
if (books.Count > 1)
{
textBox3.Text = books[0];//update the first text
textBox4.Text = books[1];//update the second text
}
}
}
}
Windows Forms:
1-在类级别定义你的List book,这样你就可以在需要的时候在其他方法中使用它。。
2-
public clas MyForm : Form
{
List<ore> books = new List<ore>();//define at the class scope
private void button2_Click(object sender, EventArgs e)
{
FileStream fs = new FileStream("ore.dat", FileMode.Open);
BinaryFormatter bf = new BinaryFormatter();
books = (List<ore>)bf.Deserialize(fs);
fs.Close();
if (books.Count > 1)
{
textBox3.Text = books[0];//update the first text
textBox4.Text = books[1];//update the second text
}
}
}
如果你需要在图书列表更改时添加和删除列表框的集合,那么这是另一回事。。。写一条评论或更新你的问题。。。
或者,动态创建Textbox控件。
for(int i=1; i<=books.Count; i++)
{
var textBoxCtrl = new TextBox()
textBoxCtrl.ID = "TextBox"+i.toString();
textBoxCtrl.Text = books[i];
Page.Controls.Add(textBoxCtrl);
}
在ASP.NET中:您可以使用ASP.NET FormView对象创建表单,然后将数据集绑定到表单并调用DataBind。
<asp:FormView runat="server" ID="form1">
<ItemTemplate>
<asp:TextBox Text='<%# Bind("") %>'></asp:TextBox>
</ItemTemplate>
</asp:FormView>