/// <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); }