Bonjour Une autre possibilité est d'utiliser eventhandler et et envoyer des messages ou valeurs d'un enfant à l'autre via son parent ou même parent.
Voici mon exemple en C# (désolé, je comprends VB.NET, mais ne parle pas :).)
formulaire parent:
/// Mdi parent form
public partial class ParentForm : Form
{
private int ChildCounter = 0;
public ParentForm()
{
InitializeComponent();
this.IsMdiContainer = true;
}
//Child forms will hook to this event handler
public event MessageEventHandler MessageHandler;
/// Sends the message.
public void SendMessage(MessageEventArgs e)
{
if (MessageHandler != null) MessageHandler(e);
}
/// Adds children form.
private void btnAddChildForm_Click(object sender, EventArgs e)
{
var child = new ChildForm(this) { Name = string.Format("child_{0}", ChildCounter++) };
child.Text = child.Name;
child.Show();
}
}
/// Event handler delegate
public delegate void MessageEventHandler(MessageEventArgs e);
/// Message argument with recipient and message
public class MessageEventArgs : EventArgs
{
public string Message { get; set; }
public string Recipient { get; set; }
}
formulaire enfant:
/// Children form
public partial class ChildForm : Form
{
//Contructor which will setup child form
public ChildForm(ParentForm parent)
: this()
{
this.MdiParent = parent;
if (parent != null)
parent.MessageHandler += Message_Received; // Register to receive message from handler
}
public ChildForm()
{
InitializeComponent();
}
/// Unregister event receiver while closing form.
protected override void OnClosing(CancelEventArgs e)
{
var parent = this.MdiParent as ParentForm;
if(parent!=null)
{
parent.MessageHandler -= Message_Received;
}
base.OnClosing(e);
}
/// Manage received message.
private void Message_Received(MessageEventArgs e)
{
// When no ricipient all child form will show message.
if (e.Recipient == this.Name || string.IsNullOrEmpty(e.Recipient))
{
txtReceivedMessage.Text = e.Message;
}
this.Refresh();
}
/// Sends message when button pressed.
private void btnSendMessage_Click(object sender, EventArgs e)
{
var parent = MdiParent as ParentForm;
if (this.MdiParent != null)
{
// MessageEventArgs contains information about recipient and message.
parent.SendMessage(new MessageEventArgs() { Recipient = txtRecipientName.Text, Message = txtMessageToSend.Text });
}
}
}
'txtSearch' zone de texte est dans la forme form1 ou mdi ah? et ces deux formes montrent la forme parentale forme ah? – Sathish
txtSearch zone de texte dans formulaire1, oui les deux spectacles du parent – mcbalaji
'txtSearch.Text' stocké n'importe où et vous montrez la deuxième forme lorsque form1 a montré l'heure ah ou après form1 fermer show form2 ah? – Sathish