Como enviar un valor de una Clase a un formulario.

13/01/2010 - 18:02 por Miguel Arenas | Informe spam
Tengo una clase que llama a un formulario. Y necesito que me regrese un
valor(si presiono el boton YES o el NO) a la clase como puedo hacerlo,
usualmente programo en VB, pero quiero empezar a cambiar mis programas a C#.
de antemano gracias por la ayuda.
Codigo de la clase

using System;
using System.Collections.Generic;
using System.Text;
using System.Drawing;

namespace clsMsgbox
{

public class Show
{
private int _wmsgresp;

public int wmsgrespx {
get { return _wmsgresp; }
set { _wmsgresp = value; }
}

public virtual int MessageBoxOk(string wlblmsg )
{
Frmmsgbox lfrmmsg =new Frmmsgbox();


lfrmmsg.btnNo.Visible = false;
lfrmmsg.btnYes.Text = "Ok";
lfrmmsg.btnYes.Location = new System.Drawing.Point(90, 267);
lfrmmsg.lblMsg.Text = wlblmsg;
lfrmmsg.ShowDialog();
lfrmmsg.Dispose();
lfrmmsg = null;
return 7;
}
public virtual int MessageBoxYesNo(string wlblmsg)
{
Frmmsgbox lfrmmsg =new Frmmsgbox();
int wresp = 0;
lfrmmsg.lblMsg.Text = wlblmsg;
lfrmmsg.ShowDialog();
if (lfrmmsg.btnNo.Tag == "1")
{
wresp = 7;
}
else
{ wresp = 6; }
lfrmmsg.Dispose();
lfrmmsg = null;
return wresp;
}
public Show(int _valor) { _wmsgresp = _valor; }


}
}

Codigo del Fomulario
namespace clsMsgbox
{
public partial class Frmmsgbox : Form
{
public Frmmsgbox()
{
InitializeComponent();
}

private void btnYes_Click(object sender, EventArgs e)
{

btnYes.Tag = "1";
this.Close();
}

private void btnNo_Click(object sender, EventArgs e)
{
btnNo.Tag = "1";
this.Close;
}
}
}

Preguntas similare

Leer las respuestas

#1 Company
13/01/2010 - 18:17 | Informe spam
Miguel Arenas a formulé ce mercredi :
Tengo una clase que llama a un formulario. Y necesito que me regrese un
valor(si presiono el boton YES o el NO) a la clase como puedo hacerlo,
usualmente programo en VB, pero quiero empezar a cambiar mis programas a C#.
de antemano gracias por la ayuda.
Codigo de la clase

using System;
using System.Collections.Generic;
using System.Text;
using System.Drawing;

namespace clsMsgbox
{

public class Show
{
private int _wmsgresp;

public int wmsgrespx {
get { return _wmsgresp; }
set { _wmsgresp = value; }
}

public virtual int MessageBoxOk(string wlblmsg )
{
Frmmsgbox lfrmmsg =new Frmmsgbox();


lfrmmsg.btnNo.Visible = false;
lfrmmsg.btnYes.Text = "Ok";
lfrmmsg.btnYes.Location = new System.Drawing.Point(90, 267);
lfrmmsg.lblMsg.Text = wlblmsg;
lfrmmsg.ShowDialog();
lfrmmsg.Dispose();
lfrmmsg = null;
return 7;
}
public virtual int MessageBoxYesNo(string wlblmsg)
{
Frmmsgbox lfrmmsg =new Frmmsgbox();
int wresp = 0;
lfrmmsg.lblMsg.Text = wlblmsg;
lfrmmsg.ShowDialog();
if (lfrmmsg.btnNo.Tag == "1")
{
wresp = 7;
}
else
{ wresp = 6; }
lfrmmsg.Dispose();
lfrmmsg = null;
return wresp;
}
public Show(int _valor) { _wmsgresp = _valor; }


}
}

Codigo del Fomulario
namespace clsMsgbox
{
public partial class Frmmsgbox : Form
{
public Frmmsgbox()
{
InitializeComponent();
}

private void btnYes_Click(object sender, EventArgs e)
{

btnYes.Tag = "1";
this.Close();
}

private void btnNo_Click(object sender, EventArgs e)
{
btnNo.Tag = "1";
this.Close;
}
}
}



a) Define una enumeracion con dos (o tres) posibilidades : YES, NO, y
NADA.
b) En el formulario, define una variable cuyo tipo corresponde a esta
enumeracion.
c) Mientras el usuario no haya escogido (al principio) le pones el
valor NADA a la variable.
d) Cuando el usuario escoge en tre YES y NO le das el valor
correspondiente a la variable.
A tu formulario, te añades un metodo get que te devuelve el valor de
esta variable.

Cuando lo necesitas, puedes llamar este metodo get del formulario para
saber si el usuario escogio YES o NO. Si el usuario todavia no escogio,
recogeras el valor NADA. Sino, conoceras el valor escogido.
Respuesta Responder a este mensaje
#2 Gustavo Cantero
13/01/2010 - 18:44 | Informe spam
Miguel:
Creo que la mejor manera sería, en el formulario que tiene tiene los
botones YES y NO, cambiar la propiedad DialogResult dependiendo del botón
pulsado por el usuario. Esta propiedad usa un enumerador que te permite
ponerle varios valor, por ejemplo, Yes, No, Abort, Cancel, etc.
El formulario que lo va a usar simplemente debe llamar al método
ShowDialog() para que el formulario se muestre de forma "modal" (o sea,
que no pueda seleccionar otro formulario) y una vez pulsado algún botón te
devuelve el valor de lo elegido.
Por ejemplo:

namespace clsMsgbox
{
public partial class Frmmsgbox : Form
{
public Frmmsgbox()
{
InitializeComponent();
}

private void btnYes_Click(object sender, EventArgs e) {
DialogResult = DialogResult.Yes; }

private void btnNo_Click(object sender, EventArgs e) {
DialogResult = DialogResult.No; }
}
}

Y desde lo quieras usar deberías hacerlo de esta manera:

Frmmsgbox msg = new Frmmsgbox();


DialogResult valor = msg.ShowDialog();
switch (valor)
{
case DialogResult.Yes:
//Pulsó "Yes"

break;

case DialogResult.No:
//Pulsó "No"

break;

case DialogResult.Abort:
//Pulsó "Abort"

break;
}
Saludos.


Gustavo A. Cantero
Scientia® Soluciones Informáticas
MCP - MCSD - MCTS - MCPD
http://www.scientia.com.ar
http://www.programandoamedianoche.com
http://foro.scientia.com.ar



De: Miguel Arenas [mailto:]
Expuesto a las: Miércoles, 13 de Enero de 2010 02:02 p.m.
Expuesto en: microsoft.public.es.csharp
Conversación: Como enviar un valor de una Clase a un formulario.
Asunto: Como enviar un valor de una Clase a un formulario.

Tengo una clase que llama a un formulario. Y necesito que me regrese un
valor(si presiono el boton YES o el NO) a la clase como puedo hacerlo,
usualmente programo en VB, pero quiero empezar a cambiar mis programas a
C#.
de antemano gracias por la ayuda.
Codigo de la clase

using System;
using System.Collections.Generic;
using System.Text;
using System.Drawing;

namespace clsMsgbox
{

public class Show
{
private int _wmsgresp;

public int wmsgrespx {
get { return _wmsgresp; }
set { _wmsgresp = value; }
}

public virtual int MessageBoxOk(string wlblmsg )
{
Frmmsgbox lfrmmsg =new Frmmsgbox();


lfrmmsg.btnNo.Visible = false;
lfrmmsg.btnYes.Text = "Ok";
lfrmmsg.btnYes.Location = new System.Drawing.Point(90, 267);
lfrmmsg.lblMsg.Text = wlblmsg;
lfrmmsg.ShowDialog();
lfrmmsg.Dispose();
lfrmmsg = null;
return 7;
}
public virtual int MessageBoxYesNo(string wlblmsg)
{
Frmmsgbox lfrmmsg =new Frmmsgbox();
int wresp = 0;
lfrmmsg.lblMsg.Text = wlblmsg;
lfrmmsg.ShowDialog();
if (lfrmmsg.btnNo.Tag == "1")
{
wresp = 7;
}
else
{ wresp = 6; }
lfrmmsg.Dispose();
lfrmmsg = null;
return wresp;
}
public Show(int _valor) { _wmsgresp = _valor; }


}
}

Codigo del Fomulario
namespace clsMsgbox
{
public partial class Frmmsgbox : Form
{
public Frmmsgbox()
{
InitializeComponent();
}

private void btnYes_Click(object sender, EventArgs e)
{

btnYes.Tag = "1";
this.Close();
}

private void btnNo_Click(object sender, EventArgs e)
{
btnNo.Tag = "1";
this.Close;
}
}
}
Respuesta Responder a este mensaje
#3 Miguel Arenas
13/01/2010 - 21:57 | Informe spam
En que seccion declaro DialogResult?

me en la clase que llama, al formulario?

"Gustavo Cantero" wrote:

Miguel:
Creo que la mejor manera sería, en el formulario que tiene tiene los
botones YES y NO, cambiar la propiedad DialogResult dependiendo del botón
pulsado por el usuario. Esta propiedad usa un enumerador que te permite
ponerle varios valor, por ejemplo, Yes, No, Abort, Cancel, etc.
El formulario que lo va a usar simplemente debe llamar al método
ShowDialog() para que el formulario se muestre de forma "modal" (o sea,
que no pueda seleccionar otro formulario) y una vez pulsado algún botón te
devuelve el valor de lo elegido.
Por ejemplo:

namespace clsMsgbox
{
public partial class Frmmsgbox : Form
{
public Frmmsgbox()
{
InitializeComponent();
}

private void btnYes_Click(object sender, EventArgs e) {
DialogResult = DialogResult.Yes; }

private void btnNo_Click(object sender, EventArgs e) {
DialogResult = DialogResult.No; }
}
}

Y desde lo quieras usar deberías hacerlo de esta manera:

Frmmsgbox msg = new Frmmsgbox();
.

DialogResult valor = msg.ShowDialog();
switch (valor)
{
case DialogResult.Yes:
//Pulsó "Yes"

break;

case DialogResult.No:
//Pulsó "No"

break;

case DialogResult.Abort:
//Pulsó "Abort"

break;
}
Saludos.


Gustavo A. Cantero
Scientia® Soluciones Informáticas
MCP - MCSD - MCTS - MCPD
http://www.scientia.com.ar
http://www.programandoamedianoche.com
http://foro.scientia.com.ar



De: Miguel Arenas [mailto:]
Expuesto a las: Miércoles, 13 de Enero de 2010 02:02 p.m.
Expuesto en: microsoft.public.es.csharp
Conversación: Como enviar un valor de una Clase a un formulario.
Asunto: Como enviar un valor de una Clase a un formulario.

Tengo una clase que llama a un formulario. Y necesito que me regrese un
valor(si presiono el boton YES o el NO) a la clase como puedo hacerlo,
usualmente programo en VB, pero quiero empezar a cambiar mis programas a
C#.
de antemano gracias por la ayuda.
Codigo de la clase

using System;
using System.Collections.Generic;
using System.Text;
using System.Drawing;

namespace clsMsgbox
{

public class Show
{
private int _wmsgresp;

public int wmsgrespx {
get { return _wmsgresp; }
set { _wmsgresp = value; }
}

public virtual int MessageBoxOk(string wlblmsg )
{
Frmmsgbox lfrmmsg =new Frmmsgbox();


lfrmmsg.btnNo.Visible = false;
lfrmmsg.btnYes.Text = "Ok";
lfrmmsg.btnYes.Location = new System.Drawing.Point(90, 267);
lfrmmsg.lblMsg.Text = wlblmsg;
lfrmmsg.ShowDialog();
lfrmmsg.Dispose();
lfrmmsg = null;
return 7;
}
public virtual int MessageBoxYesNo(string wlblmsg)
{
Frmmsgbox lfrmmsg =new Frmmsgbox();
int wresp = 0;
lfrmmsg.lblMsg.Text = wlblmsg;
lfrmmsg.ShowDialog();
if (lfrmmsg.btnNo.Tag == "1")
{
wresp = 7;
}
else
{ wresp = 6; }
lfrmmsg.Dispose();
lfrmmsg = null;
return wresp;
}
public Show(int _valor) { _wmsgresp = _valor; }


}
}

Codigo del Fomulario
namespace clsMsgbox
{
public partial class Frmmsgbox : Form
{
public Frmmsgbox()
{
InitializeComponent();
}

private void btnYes_Click(object sender, EventArgs e)
{

btnYes.Tag = "1";
this.Close();
}

private void btnNo_Click(object sender, EventArgs e)
{
btnNo.Tag = "1";
this.Close;
}
}
}

.

email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida