none
La cadena de entrada no tiene el formato correcto [ComboBox, evento > SelectedIndeChanged] RRS feed

  • Pregunta

  • Estoy trabajando con un editor de texto sencillo, coloque un menustrip y en ese menu coloque un combobox para que cambie el tamaño del texto a 16, 24 y predeterminado(el tamaño de texto predeterminado por el editor), al compilar el programa si me permite aumentar el tamaño a 16 y 24 pero cuando selecciono el tamaño predeterminado me marca el error de que la cadena de entrada no tiene el formato correcto 

            private void menuTam_SelectedIndexChanged(object sender, EventArgs e)
            {
                ctEditor.Font = new Font(ctEditor.Font.SystemFontName,float.Parse(menuTam.SelectedItem.ToString()),ctEditor.Font.Style);
            }

    Esta es la cadena donde me marca el error

    Si alguien me pudiera indicar donde esta el error se lo agradeceria mucho :(

    domingo, 25 de febrero de 2018 0:16

Respuestas

  • Hola erikgl16,

    El error que te está mostrando se produce porque algún valor de tu control 'ComboBox' no puede ser convertido a un tipo float. Ya que mencionas que tienes 3 valores (16, 24 y Predeterminado) es lógico que este último no pueda ser convertido, por lo que podrías utilizar el TryParse.

    private float fzDefault = 10f;
    
    private void menuTam_SelectedIndexChanged(object sender, EventArgs e)
    {
        float fontSize;
    
        if (!float.TryParse(menuTam.SelectedItem.ToString(), out fontSize)) //Si no se puede convertir
            fontSize = fzDefault; //Asigna el tamaño por defecto
    
        ctEditor.Font = new Font(ctEditor.Font.SystemFontName, fontSize, ctEditor.Font.Style);
    }

    O simplemente utilizar un if y validar mediante el índice utilizando la propiedad SelectedIndex.

    Saludos.


    JC NaupaCrispín
    Lima - Perú

    La magia no existe, la programación SI

    domingo, 25 de febrero de 2018 1:51

Todas las respuestas

  • Hola erikgl16,

    El error que te está mostrando se produce porque algún valor de tu control 'ComboBox' no puede ser convertido a un tipo float. Ya que mencionas que tienes 3 valores (16, 24 y Predeterminado) es lógico que este último no pueda ser convertido, por lo que podrías utilizar el TryParse.

    private float fzDefault = 10f;
    
    private void menuTam_SelectedIndexChanged(object sender, EventArgs e)
    {
        float fontSize;
    
        if (!float.TryParse(menuTam.SelectedItem.ToString(), out fontSize)) //Si no se puede convertir
            fontSize = fzDefault; //Asigna el tamaño por defecto
    
        ctEditor.Font = new Font(ctEditor.Font.SystemFontName, fontSize, ctEditor.Font.Style);
    }

    O simplemente utilizar un if y validar mediante el índice utilizando la propiedad SelectedIndex.

    Saludos.


    JC NaupaCrispín
    Lima - Perú

    La magia no existe, la programación SI

    domingo, 25 de febrero de 2018 1:51
  • Muchisimas Gracias, ya no me marco el error :D
    lunes, 26 de febrero de 2018 1:35