Sep 28 2007

.NET: Validar que introducimos números enteros en un TextBox (2ª parte), o como usar int.TryParse

Ayer veíamos como hacer que el TextBox admitiese sólo caracteres numéricos, pero… como bien nos indica Rafael Vargas en su comentario al post de ayer, se nos olvidó que, los chicus malos los hay por todas partes, y, aunque evitábamos el Ctrl-C Ctrl-V, no evitabamos el copiar-pegar que se realiza con el ratón, por lo que la TextBox podía contener caracteres alfanuméricos.

La solución viene por implementar el evento Validating del TextBox, utilizando para ello el método que aparece en la versión 2.0 de .NET FrameWork int.TryParse(string s, out int Result), el cual, Convierte la representación en forma de cadena de un número en el entero de 32 bits con signo equivalente. Un valor devuelto indica si la operación tuvo éxito. Usease, si lo que contiene el parámetro de tipo string s es un número, te devuelve dicho número en el parámetro de salida Result, en cambio, si no es un número, el parámetro de salido Result devolverá cero. A todo esto, int.TryParse() en un método estático de tipo booleano que devuelve true si s se convirtió correctamente; en caso contrario, false.

Resumiendo, en mi clase Utilidades, me he creado un método estático al que llamo desde el evento Validating del TextBox. El código del método estático es el siguiente:

public static string EsNumero(string MiTexto)
{
int Result = 0;
if(!int.TryParse(MiTexto, out Result))
MiTexto = "";
return MiTexto;
}

Ala, a seguir currando gañanes, que ya es viernes, iujuuuuu!!!! ;)

Sep 27 2007

.NET: Validar que introducimos números enteros en un TextBox

En una aplicación que estoy desarrollando, me he visto en la necesidad, en uno de los TextBox, de que sólo admita números enteros, ya que, en este TextBox, guardo el código postal del cliente.

Pues bien, para ello me he creado, en una clase que tengo de utilidades, en un proyecto aparte al que referencio desde el proyecto en cuestión, un procedimiento estático al que llamo desde el evento KeyPress del TextBox en cuestión. El código de dicho procedimiento estático es el siguiente:

public static void EsEntero(KeyPressEventArgs e)
{
if ((e.KeyChar >= 47 && e.KeyChar <= 58) || (e.KeyChar==8) )
{
e.Handled = false;
return;
}
else
{
e.Handled = true;
return;
}
}

De esta forma sólo admito números y el backspace, comprobando el valor ascii de la tecla pulsada, cuando introduzco datos en el TextBox.

Sep 25 2007

.NET: Uso de StartupPath o cómo saber la ruta de mi ejecutable

En una aplicación que estoy haciendo me he visto en la necesidad de saber en tiempo de ejecución la ruta desde la que se lanza el .exe de mi aplicación, ya que tengo ahí almacenados varios XML que tengo que utilizar. Pues bien, una vez más, el Framework de .NET nos lo soluciona. Sólo tenemos más que cargar en una variable de tipo string la propiedad StartupPath de la clase Application que está en el espacio de nombres System.Windows.Forms, la cual obtiene la ruta de acceso del archivo ejecutable que inició la aplicación, sin incluir el nombre del archivo ejecutable.

string MiPath = System.Windows.Forms.Application.StartupPath;

Cada día me gusta más el .NET este ;)

Sep 21 2007

Que ya es viernes!!

Pos eso, que llega el finde, las fiestas del barrio… Gora San fermin Txikito!!! Mientras os dejo este video para que disfruteis. Haced el mal, jiji, nos vemos a la tarde en las charlas de la Navarparty y a la noche por el Nicolette, que hoy pincha mi hermana.


What Is He Drawing ? - Free videos are just a click away

Sep 17 2007

.NET: El DataBoundItem o como coger la Row de nuestro dataGridView

En una aplicación que estoy haciendo, tengo un formulario con un dataGridView que contiene los datos de la tabla Clientes de la BBDD, el cual, lo he rellenado a través de un dataset tipado que me he creado al efecto. Este formulario me debe devolver el ID del cliente al hacer dobleclick en una de las filas del dataGridView.

Para ello utilizo la propiedad DataBoundItem del dataGridView, el cual, obtiene el objeto enlazado a datos que ha rellenado la fila, y esto lo programo en el evento CellDoubleClick del datagridView de la siguiente forma, donde el DSOpolin es el dataset tipado:

private void dataGridView1_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
{
DataRowView MiRowView = (DataRowView)this.dataGridView1.CurrentRow.DataBoundItem;
DSOpolin.ClientesRow MiRow = (DSOpolin.ClientesRow)
MiRowView.Row;
string MiId = MiRow.IdCliente.ToString();
}

Sep 14 2007

NavarraDotNet: Concurso

Vía mail (es un decir) me llega la noticia de que NavarraDotNet ha organizado un concurso. Copioi y pego el texto del mismo:

“Gracias a Chema Alonso , tenemos dos entradas para la NavarParty, por lo que la forma de adjudicarlas será la siguiente:

Se convoca un concurso, cuyo jurado será el propio Chema, al que habrá que mandar un artículo, ensayo, aplicación,… vamos, lo que queráis (naturalmente los artículos, ensayos etc… deberán ser originales vuestros y de temática informática. En caso de las aplicaciones, lo mismo, deberá, ser vuestras, realizadas por vosotros). Los ensayos, artículos, etc… podrán versar sobre cualquier tecnología, independientemente de ser Software Libre o Propietario, así como las aplicaciones, podrán realizarse en la tecnología que prefiráis. Una historia, cuento, chiste, anécdota sobre tecnología también será valido.

El concurso podrá ser declarado desierto, sin ganadores, y NavarraDoptNet se reserva el derecho a cambiar las normas del mismo, en cualquier momento.

Los artículos, ensayos, aplicaciones, etc… que resulten ganadoras se publicaran en el portal de NavarraDotNet.

Tenéis de tiempo hasta el 18 de septiembre. “

Más información en NavarraDotNet.

Sep 11 2007

“Pasa la vida, pasa la vida”… y van 33!!

Así es, como dice la canción de Bajarse al moro, pasa la vida, y hoy cumplo 33 primaveras, casi ná!

Desde que nacemos es una cuenta atrás, un bucle que no sabes cuando acaba, lleno de if, swichtes y foreach varios, que nunca sabes a donde te van a llevar y si alguno tendrá algún return. Ahora ya veis, un if de este bucle me ha llevado a vivir a Etxarri, con una txikita que me vuelve loco y a replantearme mi futuro, pues ya no es sólo mío, sino que está compartido (lo cual me encanta). Pero en fin, vale de filosofía baratas blogosféricas, que la vida es para disfrutarla, no para padecerla, sobre todo para los ateos practicantes como yo, que no creemos en otra vida más allá, sino en esta, que sólo se vive una vez!!! Mi consejo, trabajar para vivir, no viváis para trabajar, que cualquier día un maldito if del bucle contendrá un return del que no podréis escapar (aunque cuanto más tarde mejor).

Joder que txapa! me estaré haciendo viejo? será el amor? ni puta idea… ondo izan guztiei y haced el mal!!!

Sep 10 2007

.NET: Uso del ToolTip o que salga la ventanita con texto al pararme en un control

Muchas veces, en nuestras aplicaciones, queremos que, al dejar el ratón encima de un control, nos aparezca la típica ventanica amarilla con un texto que indique qué es lo que hace ese objeto o lo que queramos. Pues bien, la forma de hacerlo es utilizando el objeto ToolTip.

ToolTip

Una vez lo hayamos añadido a nuestro formulario, todos los objetos del formulario contendrán una nueva propiedad llamada ToolTip en ToolTip1, que podremos ver en la ventana de propiedades del objeto que aparece en la vista diseño del VS2005.

ToolTip

No tenemos más que poner el texto que queramos, para que, una vez ejecutada la aplicación, dicho texto aparezca cuando pongamos el ratón encima. En el ejemplo se lo he puesto al botón aceptar de un formulario que me he creado al efecto.

ToolTip

El objeto tiene unas cuantas propiedades para indicarlo cuando debe salir etc…

ToolTip

Pero esto ya os lo dejo para vuestro deleite, que no os lo voy a dar todo hecho ;)

Sep 07 2007

Ya es viernes: Estar guars

Hacía tiempo que lo tenía archivado, pero justo el otro día lo volví a ver por la red y me seguí partiendo la caja igual que la primera vez.

[video]http://www.youtube.com/watch?v=5tviuFLCPqI[/video]

Sep 05 2007

.NET: Uso del ContextMenuStrip

Muchas veces nos vemos en la necesidad de añadir un menú contextual a algún objeto de nuestra aplicación. La solución viene por usar el ContextMenuStrip que nos proporciona el VS2005.

ContextMenuStrip

Para usarlo debemos añadirlo al formulario en el cual este el objeto al que se lo queremos añadir. Una vez añadido, aparecerá en la parte de abajo de la vista diseño de nuestro formulario y lo seleccionamos.

ContextMenuStrip

Una vez seleccionada, nos aparecerá en nuestro formulario, como se puede apreciar en la imagen de arriba, donde le meteremos el menú que queremos que aparezca. Y luego ya programamos el evento Click de cada entrada del menú para que haga lo que queramos que haga.

Luego se lo tenemos que añadir al objeto que queremos que tenga este menú contextual, en nuestro caso el NotifyIcon del otro día. Para ello vamos a la vista diseño, y en las propiedades aparecerá la propiedad ContextMenuStrip en formato combo, seleccionando el ContextMenuStrip que hemos creado.

NotifyIcon Propertys

Y cuando ejecutemos el programa, nos quedará tal que así:

ContextMenuStrip