将选定项目从第二种形式的列表框传递到第一种形式的列表框

时间:2014-07-29 14:51:40

标签: c#

//在主窗体中有一个公共列表框“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

任何帮助都会非常感谢:-)

2 个答案:

答案 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.