If all the MDI child forms are of the same type - then you can just expose the ListBox on the child form by either changing it's modifier or adding a property with a getter that will return the ListBox. Then, on the "Save" menu just cast the this.ActiveMdiChild to your form's type and use the property to get the ListBox.
If you have multiple types of MdiChild forms, you can either have all of them to inherit from one base form (with the ListBox and a property getter on it) or better off, just implement an interface with a ListBox property.
// declare the interface
public interface IListBoxOwner
{
ListBox ListBox
{
get;
}
}
// form2 is one of the possible MdiChild forms
public partial class Form2 : Form, IListBoxOwner
{
public Form2()
{
InitializeComponent();
}
#region IListBoxOwner Members
public ListBox ListBox
{
get { return this.listBox1; }
}
#endregion
}
// in the MdiContainer form, the Save menu
private void saveToolStripMenuItem_Click(object sender, EventArgs e)
{
if (this.ActiveMdiChild is IListBoxOwner)
{
(this.ActiveMdiChild as IListBoxOwner).ListBox.Items.Add("asdasd");
}
}
hth,
Lior.