Ejemplo n.º 1
0
        /// <summary>
        /// Handles textchanged in the Codepage textbox.
        /// </summary>
        /// <param name="sender"><c><see cref="tb_Codepage"/></c></param>
        /// <param name="e"></param>
        void tb_Codepage_textchanged(object sender, EventArgs e)
        {
            Encoding enc = null;

            if (tb_Codepage.Text.Length == 0)
            {
                la_CodepageInfo.Text = String.Empty;
                _pre = 0;
            }
            else if (tb_Codepage.Text.StartsWith("0", StringComparison.Ordinal))
            {
                tb_Codepage.Text           = tb_Codepage.Text.Substring(1);       // recurse
                tb_Codepage.SelectionStart = tb_Codepage.Text.Length;
            }
            else
            {
                int result;
                if (!Int32.TryParse(tb_Codepage.Text, out result) ||
                    result < 0 || result > 65535)
                {
                    tb_Codepage.Text           = _pre.ToString(CultureInfo.InvariantCulture);           // recurse
                    tb_Codepage.SelectionStart = tb_Codepage.Text.Length;
                }
                else if (YataGrid.CheckCodepage(_pre = result))
                {
                    enc = Encoding.GetEncoding(_pre);

                    la_CodepageInfo.ForeColor = Colors.Text;
                    la_CodepageInfo.Text      = enc.HeaderName + Environment.NewLine
                                                + enc.EncodingName + Environment.NewLine
                                                + enc.CodePage;
                }
                else
                {
                    la_CodepageInfo.ForeColor = Colors.TextReadonly;
                    la_CodepageInfo.Text      = "Codepage invalid.";
                }
            }
            bu_Accept.Enabled = (enc != null);
        }