Foros - Stratos

Programadores => General Programadores => Mensaje iniciado por: E0N en 06 de Octubre de 2007, 01:41:36 PM

Título: [C#] Problema con visivilidad de objetos (muy simple)
Publicado por: E0N en 06 de Octubre de 2007, 01:41:36 PM
Hola a todos

Vereis, tengo un problema con la visibiliad de un objeto, por ejemplo un Text Box.
La cosa es, yo inicio un programa de formularios de windows, le añado un text box  y ahora intento modificar sus propiedades. Desde distintos lugares.

Me voy al MainForm.cs (donde esta añadido mi textBox1) y este es el código que el compilador me pone por defecto:


using System;
using System.Collections.Generic;
using System.Drawing;
using System.Windows.Forms;

namespace Prueva
{
public partial class MainForm : Form
{
public MainForm()
{
InitializeComponent();
}
}
}


Ahora kiero q se muestre "Hola" en el textbox al iniciar y hago esto:


namespace Prueva
{
public partial class MainForm : Form
{
public MainForm()
{
InitializeComponent();
}

void MainFormLoad(object sender, EventArgs e)
{
textBox1.Text = "Hola";
}
}
}


OK todo perfecto. El problema me viene dado al intentar hacer esto mismo pero desde una clase.... me explco con codigo:


namespace Prueva
{
public partial class MainForm : Form
{
public MainForm()
{
InitializeComponent();
}
}

class miClase
{
// La constructora
miClase()
{
textBox1.Text = "Hola"; //Esta es la linea donde <---
//salta el error         <---
}
}

}


En la línea indicada me salta el siguiente error: "The name 'textBox1' does not exist in the current context (CS0103)" vamos q el texbox no está visible para esa clase e provado a llamarlo de mil maneras distintas pero no lo consigo... alguien sabe como lo puedo llamar??
Gracias por la ayuda, por q  aunke es una duda muy simple me trae de cabeza
Título: [C#] Problema con visivilidad de objetos (muy simple)
Publicado por: Vicente en 06 de Octubre de 2007, 04:12:21 PM
El TextBox es una variable de la clase MainForm, con lo que es imposible que lo vea miClase...  Si quieres que lo vea miClase haz una propiedad pública o algo así que devuelva el TextBox, pero si necesitas eso estás haciendo la aplicación mal casi seguro.

Un saludo,

Vicente
Título: [C#] Problema con visivilidad de objetos (muy simple)
Publicado por: E0N en 06 de Octubre de 2007, 08:54:34 PM
Hola Vicente

Veras lo q estoy tratando de hacer es una especie de jueguecillo de cuidar una mascota (tipo tamagochi) entonces tengo una clase que contiene su estado de salud (hambre, sueño, etc...)

Lo q kiero hacer es que tu le des de comer por poner un ejemplo, llamamos a un miembro de la clase para que aumente la variable privada "hambre" y luego de ese valor a un Progress Bar, la cosa es que el progress Bar mi clase no lo ve... Habria alguna forma de hacer esto desde mi clase? o seria mejor que hiciera una "funcion" en la clase MainForm a la que pasandole la variable "hambre" modificara el progres bar??

Muchas gracias por la ayuda  :wink:
Título: [C#] Problema con visivilidad de objetos (muy simple)
Publicado por: Vicente en 06 de Octubre de 2007, 09:14:16 PM
Sip, se trata de organizar bien tu aplicación, leete esto:

http://en.wikipedia.org/wiki/Model-view-controller

Un saludo,

Vicente
Título: [C#] Problema con visivilidad de objetos (muy simple)
Publicado por: E0N en 08 de Octubre de 2007, 01:34:47 PM
Gracias por la ayuda ya lo solucioné ;)
Título: [C#] Problema con visivilidad de objetos (muy simple)
Publicado por: Pogacha en 08 de Octubre de 2007, 02:43:38 PM
Puede que halla un error ortográfico en prueva  :?
Título: [C#] Problema con visivilidad de objetos (muy simple)
Publicado por: IronFenix en 10 de Octubre de 2007, 08:35:06 PM
se podria heredar tambien del mainform???...
Título: [C#] Problema con visivilidad de objetos (muy simple)
Publicado por: E0N en 11 de Octubre de 2007, 11:53:49 AM
Ya e provado y no, ademas me parece un poco basto hacer q herede todo el MainForm...