我的ListBox包含Object的一部分(Title和Name,对象包含4个字符串)。 我希望能够在突出显示ListBox中的项目时通过“编辑”按钮以第二种形式编辑对象。
此listBox由表单2上的数据源填充,编辑表单将为表单3.
这是我的“编辑”按钮的代码:
private void edit_Click(object sender, EventArgs e)
{
object item = listBox1.SelectedItem;
Form3 MyForm = new Form3();
MyForm.Owner = this;
MyForm.Show();
}
如何填充form3中的字段并进行编辑? :)
答案 0 :(得分:0)
您将项目(在适当的强制转换后)传递给Form3构造函数,或者在Form3上使用自定义公共属性来设置检索的项目
对于这些示例,我将假设存储在列表框中的每个项目都是名为MyClass的类的实例(使用正确的类名更改它)
将项目传递给Form3构造函数
private void edit_Click(object sender, EventArgs e)
{
MyClass item = listBox1.SelectedItem as MyClass;
if(item != null)
{
Form3 MyForm = new Form3(item);
MyForm.Owner = this;
MyForm.Show();
}
}
并在Form3构造函数内部
public class Form3 : Form
{
MyClass currentItemToEdit = null;
public Form3(MyClass itemToEdit)
{
InitializeComponent();
currentItemToEdit = itemToEdit;
txtBoxTitle.Text = currentItemToEdit.Title;
......
}
}
使用自定义属性
在Form3中定义公共属性
public class Form3 : Form
{
public MyClass ItemToEdit {get; set;}
public Form3()
{
InitializeComponent();
}
protected void Form_Load(object sender, EventArgs e)
{
if(this.ItemToEdit != null)
{
txtBoxTitle.Text = ItemToEdit.Title;
......
}
}
}
在你写的第一个表格中
private void edit_Click(object sender, EventArgs e)
{
MyClass item = listBox1.SelectedItem as MyClass;
if(item != null)
{
Form3 MyForm = new Form3();
MyForm.Owner = this;
MyForm.ItemToEdit = item;
MyForm.Show();
}
}