Foros del Web » Programación para mayores de 30 ;) » .NET »

visibilidad de controles en una clase

Estas en el tema de visibilidad de controles en una clase en el foro de .NET en Foros del Web. Hola, tengo el siguiente problema, haber si alguno me puede dar una ayuda al respecto. cuando defino una interface (web, win) para que el usuario ...
  #1 (permalink)  
Antiguo 08/01/2009, 11:35
Avatar de Porlachucha  
Fecha de Ingreso: noviembre-2008
Ubicación: Santiago
Mensajes: 172
Antigüedad: 15 años, 5 meses
Puntos: 5
visibilidad de controles en una clase

Hola, tengo el siguiente problema, haber si alguno me puede dar una ayuda al respecto.
cuando defino una interface (web, win) para que el usuario ingrese datos (por ejemplo). en esa interface defini controles, ej labels, combobox, textbox, etc.
estos controles tienen visibilidad dentro de la clase que define mi formulario, y son visibles en toda la clase.
Cuando yo creo otra clase, para manejar el como esos controles procesan los datos (capa de negocios) pierdo la visibilidad del control, y es porque existen dentro de la otra clase (formulario).
la pregunta es, Como se puede acceder al control, desde otra clase?

ejemplo

namespace WindowsApplication4
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void Form1_Load(object sender, EventArgs e)
{
textBox1.Text = "en esta clase veo mi control textbox";
label1.Text = "tambien mi label";

// instancio mi clase
cMiClase cMC = new cMiClase();
// desde aca tengo visibilidad hacia las funciones de mi clase
cMC.vMiFuncionPublica("parametro");
}

private void button1_Click(object sender, EventArgs e)
{
textBox1.Text = "dentro de mi button tambien veo mi textbox";
cMiClase cMC = new cMiClase();
// desde aca tambien tengo visibilidad hacia las funciones de mi clase
cMC.vMiFuncionPublica("parametro");

}
}

en esta parte del codigo, veo que desde mi clase Form1 : Form que es del tipo formulario, puedo ver los controles que este tiene (ovbio)

Pero si yo creo otra clase, por ejemplo


public class cMiClase : Form1
{
public void vMiFuncionPublica(string sParametro)
{
sParametro = "hago algo con mi parametro";
// desde aca ya no puedo ver los controles de mi form
label1.Text = "aqui ya no tengo acceso a este control";
return;
}

private void vMiFuncionPrivada(int iOtroParametro)
{
textBox1.Text = "aca ya no tengo este control";

return;
}
}
}

desde mi segunda clase cMiClase, ya no tengo visibilidad sobre los controles.

Si alguien me puede decir que estoy haciendo mal, o que concepto me falta para investigar, les agradezco de antemano.
Saludos Foreros
  #2 (permalink)  
Antiguo 08/01/2009, 11:44
Avatar de Peterpay
Colaborador
 
Fecha de Ingreso: septiembre-2007
Ubicación: San Francisco, United States
Mensajes: 3.858
Antigüedad: 16 años, 7 meses
Puntos: 87
Respuesta: visibilidad de controles en una clase

ok pero si fuese asi y si usas un enfoque en capas porq no simple manjear el cambio a los controloes como un valor de retorno o un conjunto de valores o un objeto a si tu clase de datos podria retornar un valor que puedas asignar en la siguiente linea despues de la invocacion en tu clase de presentación

si quieres que tus controles sean accesibles creo que necestias darle una extensa leida a los modificadores de acceso para garantizar el uso. pero tendras que hacer mas cosas ya que en web no hay formulario padre ni formulario hijo para existir dependencia de un this.Owner como en winforms.
__________________
Curso WF4
http://cursos.gurudotnet.com/ DF
Aprende HTML5
  #3 (permalink)  
Antiguo 08/01/2009, 12:06
Avatar de Porlachucha  
Fecha de Ingreso: noviembre-2008
Ubicación: Santiago
Mensajes: 172
Antigüedad: 15 años, 5 meses
Puntos: 5
Respuesta: visibilidad de controles en una clase

Hola, gracias por tu respuesta.

me parece logico lo que indicas, los controles no deberian utilizarse como tales, dentro de una capa de negocios. pero por ejemplo, a veces pasa que necesariamente tenemos que mostrar un valor al usuario, que se esta procesando en la capa de negocios, (ejemplo un contador, un valor en alguna variable, etc) entonces en ese caso, en mi clase que encapsula mi capa de negocios, nunca puede ver el control.

Mira, estuve dandole algunas vueltas, e intente pasarle un control existente en el formulario, a mi clase a traves de una property, pero a pesar que compila sin problemas, al ejecutar el codigo me aparece un error de instanciacion es decir, el control no se ve :( . Sabes si este metodo llegaria a funcionar, o derechamente estoy errando el camimo??

Voy a revisar tu sugerencia acerca de los modificadores de acceso, ya que no soy muy experto en el tema de la programacion.

Saludos y gracias nuevamente
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:48.