/// <summary> /// Gets code page display names and identifiers list, initializes converters creates dropdown menu items /// and events and fills code page combobox list /// </summary> private void CreateConverters() { var defConverter = new DefaultByteCharConverter(); ToolStripMenuItem miDefault = new ToolStripMenuItem(); miDefault.Text = defConverter.ToString(); miDefault.Tag = defConverter; miDefault.Click += new EventHandler(encodingMenuItem_Clicked); //Create Code page and numbers list apply it to encodingToolStripComboBox var cpn = new CodePageNames(); cpn.displayNames.Insert(0, "ANSI (Default)"); cpn.numbers.Insert(0, 0); var newList = cpn.numbers.Join(cpn.displayNames, s => cpn.numbers.IndexOf(s), i => cpn.displayNames.IndexOf(i), (s, i) => new { val = s, name = i }).ToList(); var codePageConverter = new CodePageByteCharProvider(0); ToolStripMenuItem miCodePage = new ToolStripMenuItem(); miCodePage.Text = codePageConverter.ToString(); miCodePage.Tag = codePageConverter; miCodePage.Click += new EventHandler(cpMenuItem_Clicked); encodingToolStripMenuItem.DropDownItems.Add(miDefault); encodingToolStripMenuItem.DropDownItems.Add(miCodePage); //initialize combobox encodingToolStripComboBox.ComboBox.DisplayMember = "name"; encodingToolStripComboBox.ComboBox.ValueMember = "val"; encodingToolStripComboBox.ComboBox.DataSource = newList; encodingToolStripComboBox.SelectedIndex = 0; }
void toolStripEncoding_SelectedIndexChanged(object sender, EventArgs e) { if (encodingToolStripComboBox.SelectedIndex > 0) { int tempn = (int)encodingToolStripComboBox.ComboBox.SelectedValue; var codePageConverter = new CodePageByteCharProvider(tempn); hexBox.ByteCharConverter = codePageConverter as IByteCharConverter; } else { var tagg = encodingToolStripMenuItem.DropDownItems[0]; hexBox.ByteCharConverter = tagg.Tag as IByteCharConverter; } foreach (ToolStripMenuItem encodingMenuItem in encodingToolStripMenuItem.DropDownItems) { encodingMenuItem.Checked = (encodingMenuItem.Text == hexBox.ByteCharConverter.ToString()); } }