所以我有一个ListView
,其中填充了form1
中的信息和编辑按钮。
现在,当我在ListView
中选择项目并点击修改时,我希望它将我带到form2
并显示所选项目数据。
例如,我从ListView
点击修改中选择名称,它将我带到form2
TextBox
,让我说textbox1 = Name
和{ {1}}在我的textbox2 = Age
中有2个项目名称和年龄。
我现在需要的是,当我选择其中一个List<data>
项目并进行预编辑时,会打开ListView
并在form2
中加载名称并在textbox1
中加载年龄,怎么能我这样做?
我正在尝试这样的textbox2
事件:
listview_SelectedIndexChanged
有没有办法将此引用到按钮点击编辑?还是有另一种方式?
以后如何保存更改?
答案 0 :(得分:0)
以构造函数的形式传递值。 在您的主窗体中,您的列表框存储了变量中列表框选定值的值,然后在按钮编辑事件中调用第二个窗体的构造函数
Form2 child= new Form2(Name,Age);
Form2.show()
在第二种形式中,为名称和年龄创建全局变量
private string _name = String.Empty;
private int _age;
然后为第二个表单创建一个构造函数
public void Form2(string name, int age)
{
InitializeComponent();
this._name = name;
this._age = age;
}
答案 1 :(得分:0)
使用“属性”将数据传递到Form2和事件以返回已保存的数据:
<强> Form1中强>
private void button1_Click(object sender, EventArgs e)
{
Form2 edit = new Form2();
edit.SaveEvent += new Form2.SaveEventHandler(edit_SaveEvent); //Add event handler
edit.name = People[this.listView1.SelectedItems[0].Index].Name;
edit.age = People[this.listView1.SelectedItems[0].Index].Age;
edit.ShowDialog(this);
}
void edit_SaveEvent(object sender, SaveEventArgs e)
{
//Do Your work here with e.newAge and e.newName
((Form2)sender).Close(); //Close Form2
}
<强>窗体2 强>
public partial class Form2 : Form
{
public delegate void SaveEventHandler(object sender, SaveEventArgs e);
public event SaveEventHandler SaveEvent;
public string name { get; set; }
public string age { get; set; }
public Form2()
{
InitializeComponent();
}
private void Form2_Load(object sender, EventArgs e)
{
textBox1.Text = name;
textBox2.Text = age;
}
private void button1_Click(object sender, EventArgs e)
{
SaveEvent(this, new SaveEventArgs(textBox1.Text, textBox2.Text));
}
}
public class SaveEventArgs
{
public SaveEventArgs(string name, string age) {newName = name; newAge = age; }
public String newName {get; private set;} // readonly
public String newAge {get; private set;}
}
答案 2 :(得分:0)
为此
使用自定义构造函数表格1
private void button1_Click(object sender, EventArgs e)
{
string name = People[this.listView1.SelectedItems[0].Index].Name;
int age = People[this.listView1.SelectedItems[0].Index].Age;
Form2 edit = new Form2(name,age);
edit.ShowDialog(this);
}
表格2
public form2(string name,int age)
{
textBox1.Text = name;
textBox2.Text = age.ToString();
}
使用oop概念..很不错。