Actually T_Agendamentos
is not inside, it is ahead of T_Principal
, so much so that it has the close, minimize buttons. If you open T_Agendamentos.ShowDialog()
it will not let you click on the back window that is where the floppy is, you have to use T_Agendamentos.Show()
.
It is much more practical if the floppy disk can be in T_Agendamentos
. The new window collects the data and sends it to the main file. But supposing that this is not an option ...
If your classes are called T_Principal
and T_Agendamentos
.
In T_Principal
using System.Windows.Forms;
namespace WindowsFormsApplication2
{
public partial class T_Principal : Form
{
public T_Principal()
{
InitializeComponent();
}
// Variável que guardará a referência da janela T_Agendamentos
public T_Agendamentos JanelaAgenda;
// Abrir janela de cadastro
private void NovoCadastro_Click(object sender, System.EventArgs e)
{
this.JanelaAgenda = new T_Agendamentos();
JanelaAgenda.Show();
}
// Ícone do disquete clicado. Obter dados preenchidos
// em T_Agendamentos e cadastrar
private void Salvar_Click(object sender, System.EventArgs e)
{
string agendamento = null;
string data = null;
string solicitante = null;
string local = null;
// Esse método preenche as quatro variáveis
this.JanelaAgenda.Cadastrar(ref agendamento, ref data,
ref solicitante, ref local);
// Código que faz o cadastro...
}
}
}
And in T_Agendamentos
using System.Windows.Forms;
namespace WindowsFormsApplication2
{
public partial class T_Agendamentos : Form
{
public T_Agendamentos()
{
InitializeComponent();
}
// Método que passará para T_Principal os dados dos campos preenchidos
public void Cadastrar(ref string Agendamento, ref string Data,
ref string Solicitante, ref string Local)
{
// No caso as variáveis estão sendo passadas por referência,
// preencher aqui é o mesmo que preencher de onde o método está sendo chamado
// Basta passar os dados que foram preenchidos
Agendamento = "Campo 1";
Data = "Campo 2";
Solicitante = "Campo 3";
Local = "Campo 4";
this.Close(); // Fecha a janela de cadastro
}
}
}