Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Problema con valor de una variable (visual basic .NET)

Iniciado por yens, 08 de Diciembre de 2006, 08:12:30 PM

« anterior - próximo »

yens

Muy buenas gente! Siguiendo con mis pruebas en visual basic, me topado con un problema muy extraño...
Estoy tratando de hacer un formulario idéntico al de cambio de formato de fuente típico de Word y derivados, y cuando se carga el formulario, tengo entre otras cosas, cargados los valores por defecto de fuente, tamaño y estilo de la siguiente forma para los 3 listboxs:


lbxFuentes.SelectedItem = "Verdana"
lbxTamano.SelectedItem = 10
lbxEstilo.SelectedItem = "Cursiva"

Bueno, doy por hecho que antes de haber asignado estos selected items, tengo tambien ya añadidos distintos los distintos valores a poder seleccionar de los listboxes.

Por otra parte está el código que se encarga de modificar la vista previa en un textbox, el cual inserto en el evento de cambio de select item: "SelectedIndexChanged"

Para cualquier modificacion del item seleccionado de los 3 listboxes tendriamos que se modificasen las propiedades del texto:

txtbxVistaprevia.Font = New System.Drawing.Font(lbxFuentes.SelectedItem.ToString, lbxTamano.SelectedItem)


Como veis, solo tengo por ahora el cambio de fuente de letra, y su tamaño (por empezar por algo). El problema es que nada más ejecutar la aplicación la función anterior me devuelve el error de que no se puede pasar como parámetro de lbxTamano.SelectedItem el valor 0 Em (tamaño de la fuente).
Cómo es que me dice eso si estoy al inicio del formulario asignando el 10 como elemento seleccionado inicialmente para esa listbox?
He consultado en tiempo de ejecución el valor del cbxTamano.SelectedItem y tiene asignado el valor ""

Nosé por donde cogerlo... el único remedio cutre que pude hacerle para que tire es:

If (lbxTamano.SelectedItem <> 0) Then
       txtbxFuente.Text = lbxFuentes.Text
       txtbxVistaprevia.Font = New System.Drawing.Font(lbxFuentes.SelectedItem.ToString, lbxTamano.SelectedItem)
       End If


Pero claro, yo quiero que funcione en condiciones xD, y nosé por qué pero me da que tiene que ver con meterle numeros como valores de la listbox... Espero que os hayáis enterado de algo después de tanto rollo..

shephiroth

Buenas.

Veo 2 posibles causas:

1- Puede ser que el codigo autogenerado hace alguna llamada a tu funcion de evento.

2- El problema te lo debe de crear la primera llamada, donde el indice seleccionado aun no ha cambiado, y deberias de en vez de acceder al valor local, a la variable que recibe la llamada con el nuevo valor.

De todos modos no soy usuario de visual basic, sino de visual c, asi q no estoy seguro ^^;

SUERTE ^^

yens

Ya he solucionado el problema, al final he replanteado la solución un poquillo y he declarado de forma global (a todo el formulario) un objeto de la clase System.Drawing.Font y según lo que se vay seleccionando creo una nueva instancia de esa clase, la cual le agrego las propiedades al text de la vista previa.

Gracias de todas formas!!






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.