WinForm窗体之间传值。
最近看了一个关于ListView的例子,在ListView选中项时,自动弹出一个新窗体显示选中项的数据,窗体和窗体之间怎么传值。有以下两种方法,
1》是声明一个Public类,当选中项时,将值放到类中去,再实例一个窗体时,将类传到新窗体。再从类中取出值,赋给TextBox显示,在新窗体要修改的值的时候,就不能了。

ListViewItem lt= this.listView1.SelectedItems[0];
s = new PerSon();
s.Id = lt.Text;
s.Name = lt.SubItems[1].Text;
s.Address = lt.SubItems[2].Text;
Form3 fr3 = new Form3(s);
fr3.Show();

public partial class Form3 : Form
{
PerSon s;
public Form3(PerSon s)
{
this.s = s;
InitializeComponent();
}
private void Form3_Load(object sender, EventArgs e)
{
this.textBox1.Text = s.Id;
this.textBox2.Text = s.Name;
this.textBox3.Text = s.Address;
}
}
2》直接将this.ListView1,传到新窗体,直接操作ListView1。

ListViewItem lt= this.listView1.SelectedItems[0];
//s = new PerSon();
//s.Id = lt.Text;
//s.Name = lt.SubItems[1].Text;
//s.Address = lt.SubItems[2].Text;
Form3 fr3 = new Form3(this.listView1);
fr3.Show();

//PerSon s;
ListView ls;
//ListViewItem lst;
public Form3(ListView ls)
{
this.ls = ls;
InitializeComponent();
}
private void Form3_Load(object sender, EventArgs e)
{
ListViewItem lst = this.ls.SelectedItems[0];
this.textBox1.Text = lst.Text;
this.textBox2.Text = lst.SubItems[1].Text;
this.textBox3.Text = lst.SubItems[2].Text ;
}
private void button1_Click(object sender, EventArgs e)
{
ListViewItem lst = this.ls.SelectedItems[0];
lst.Text = this.textBox1.Text;
lst.SubItems[1].Text = this.textBox2.Text;
lst.SubItems[2].Text = this.textBox3.Text;
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· [AI/GPT/综述] AI Agent的设计模式综述