TextBox

04/03/2010 - 18:53 por Limberg | Informe spam
Cual sería el equivalente del LOAD de los FORMS, en el control TextBox

Saludos,
Limberg.



__________ Information from ESET NOD32 Antivirus, version of virus signature database 4915 (20100304) __________

The message was checked by ESET NOD32 Antivirus.

http://www.eset.com

Preguntas similare

Leer las respuestas

#6 SoftJaén
05/03/2010 - 10:30 | Informe spam
"Limberg" escribió:

Mostrar la cita
Hola:

Lo mismo no necesitas un evento. Si tu intención es separar la parte decimal
de la entera cuando asignas el valor de la propiedad Text del control,
sobrescribe en la clase derivada la propiedad Text de la clase TextBox:

class TextBoxExt: TextBox
{
private string m_parteEntera;
private string m_parteDecimal;

public override string Text
{
get
{
return base.Text;
}
set
{
base.Text = value;

if (value == string.Empty)
{
// Es una cadena de longitud cero
m_parteEntera = string.Empty;
m_parteDecimal = string.Empty;
return;
}

// Comprobamos si existe el punto
//
int n = value.IndexOf('.');

if (n == -1)
{
// No hay parte decimal
//
m_parteEntera = value;
m_parteDecimal = string.Empty;
}
else
{
m_parteEntera = value.Substring(0, n);
m_parteDecimal = value.Substring(n + 1, value.Length - n - 1);
}
int x = 0;

}
}
}

Si por ejemplo has asignado el valor "N12.2" a la propiedad Text, la parte
entera será "N12" y la parte decimal "2". Si no es así, modifica los valores
del método Substring.

Un saludo

Enrique Martínez
[MS MVP-VB]
#7 SoftJaén
05/03/2010 - 10:31 | Informe spam
"Leandro Tuttini" escribió:
Mostrar la cita
Leandro, ¿estás seguro que el control TextBox no puede actuar como
"container" de otros controles? :-)

La siguiente clase añadirá un control Label dentro de un control TextBox:

using System;
using System.Drawing;
using System.Windows.Forms;

class TextBoxExt: TextBox
{
private Label m_label;

public TextBoxExt() : base()
{
m_label = new Label();

Size = new Size(185, 23);

m_label.ForeColor = SystemColors.AppWorkspace;
m_label.Location = new Point(2, 0);

// Añadimos el control Label especificando
// su propiedad Parent.
//
m_label.Parent = this;

m_label.Click += new System.EventHandler(LabelOnClick);

}

protected override void OnControlAdded(ControlEventArgs e)
{
// Referenciamos el control añadido
//
Control ctrl = e.Control;

// Establecemos el valor de su propiedad Text
//
ctrl.Text = "Contraseña";

base.OnControlAdded(e);
}

protected override void OnEnter(EventArgs e)
{
if (m_label.Visible)
{
LabelOnClick(m_label, e);
}
base.OnEnter(e);
}

protected override void OnLeave(EventArgs e)
{
m_label.Visible = (Text == String.Empty);
base.OnLeave(e);
}

protected override void OnResize(EventArgs e)
{
m_label.Size = Size;
base.OnResize(e);
}

protected override void OnTextChanged(EventArgs e)
{
m_label.Visible = (Text == string.Empty);
base.OnTextChanged(e);
}

private void LabelOnClick(object sender, EventArgs e)
{
Focus();
}

}

¿Que no deseas utilizar la propiedad Parent? ¡Bueno! Pues añadiríamos el
control Label a la colección Controls del control TextBox de la siguiente
manera:

Controls.Add(m_label);

De una o de otra manera, podrás observar que se ejecuta el método
«OnControlAdded», es decir, cuando se añade un control a la colección
Controls del control TextBox. :-)

Un saludo

Enrique Martínez
[MS MVP - VB]
#8 César
05/03/2010 - 22:19 | Informe spam
Creo que si puede servir como container. De hecho tiene una propiedad
Controls. Que no se use mucho es otra cosa.


"Leandro Tuttini" escribió en el mensaje
news:
Mostrar la cita
Ads by Google
Search Busqueda sugerida