//在主窗体中有一个公共列表框“lstMain”
//以addTask形式
Main main = new Main();
private void btnTaskAdd_Click(object sender, EventArgs e)
{
main.lstMain.Items.Add(lstAddTask.SelectedItem.ToString());
this.Close();
}
此代码未将lstAddTask中的所选项目传递给主窗体中的lstMain
任何帮助都会非常感谢:-)
答案 0 :(得分:0)
您应该使用以下内容:
// this function should be written in the main form
private void btnTaskAdd_Click(object sender, EventArgs e)
{
var form=new addTaskForm();
if(form.ShowDialog()==DialogResult.Ok)
{
// in the form addTaskForm you add a string property called SelectedItem,
// and on selection change in the lstAddTask then you set the SelectedItem,
// the lstAddTask_SelectedIndexChanged will be written in addTaskForm
lstMain.Items.Add(form.SelectedItem);
this.Close();
}
}
希望这会对你有所帮助
问候
答案 1 :(得分:0)
您的代码不起作用,因为您没有引用第二种形式的第一个表单。
您可以使用Hadi的答案,或修改您的第二个表单,以获得可存储对第一个表单的引用的属性。
例如, Main MainForm {get; set;}
private void btnTaskAdd_Click(object sender, EventArgs e)
{
main.lstMain.Items.Add(lstAddTask.SelectedItem.ToString());
this.Close();
}
然后以你的主要形式
var form = new addTaskForm();
form.MainForm = this;
form.ShowDialog()
//etc.