En VB6.0 era tan sencillo como esto:
'Form2
txtNombre.Text = frmMain.txtNombre.Text
'O usando una variable publica
txtNombre.Text = frmMain.strNombre
En C# es distinto ya que se manejan clases, supongamos que estas en esta situacion, tienes dos formularios:
FormUno.cs y
FormDos.cs, el formulario FormUno es el primero en iniciar y tienes dos ComboBox en cada formulario llamados
ComboBox1 y
ComboBox2 pero quieres que en el FormDos en el evento Load cargue los datos de los CombosBoxes del FormUno sin instanciar el formulario porque recuerda que el FormUno inicia primero:
Codigo C#:
// FormUno.cs
public partial class FormUno : Form
{
public static string strCombo1 = "";
public static string strCombo2 = "";
private void ComboBox1_DropDown(object sender, EventArgs e)
{
strCombo1 = ComboBox1.Text;
}
private void ComboBox1_DropDownClosed(object sender, EventArgs e)
{
strCombo1 = ComboBox1.Text;
}
private void ComboBox2_DropDown(object sender, EventArgs e)
{
strCombo2 = ComboBox2.Text;
}
private void ComboBox2_DropDownClosed(object sender, EventArgs e)
{
strCombo2 = ComboBox2.Text;
}
}
Codigo VB.BET:
' FormUno.cs
Public Partial Class FormUno Inherits Form
Public Shared strCombo1 As String = ""
Public Shared strCombo2 As String = ""
Private Sub ComboBox1_DropDown(sender As Object, e As EventArgs)
strCombo1 = ComboBox1.Text
End Sub
Private Sub ComboBox1_DropDownClosed(sender As Object, e As EventArgs)
strCombo1 = ComboBox1.Text
End Sub
Private Sub ComboBox2_DropDown(sender As Object, e As EventArgs)
strCombo2 = ComboBox2.Text
End Sub
Private Sub ComboBox2_DropDownClosed(sender As Object, e As EventArgs)
strCombo2 = ComboBox2.Text
End Sub
End Class
Declarar dos variables publicas y estaticas en la clase para asi acceder directamente a ellas, ademas si los CombosBoxes cambian de Texto hay que declarar los eventos DropDown y DropDownClosed para guardar instantaneamente el texto en la variable y asi quedaria el FormDos:
Codigo C#:
public partial class FormDos : Form
{
private void FormDos_Load(object sender, EventArgs e)
{
/** Sin necesidad de instanciar el FormUno se puede acceder a los datos **/
this.Combo1.Text = FormUno.strCombo1;
this.Combo2.Text = FormUno.strCombo2;
}
}
Codigo VB.NET:
Public Partial Class FormDos Inherits Form
Private Sub FormDos_Load(sender As Object, e As EventArgs)
' Sin necesidad de instanciar el FormUno se puede acceder a los datos
this.Combo1.Text = FormUno.strCombo1
this.Combo2.Text = FormUno.strCombo2
End Sub
End Sub
NOTA: codigos convertidos gracias a
esta aplicacion
Publicado en
tttony.blogspot.com