private void BlockTypeComboBox_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (m_firmware == null)
            {
                return;
            }

            StringListBox.Invalidate();
            StringListBox_SelectedValueChanged(StringListBox, EventArgs.Empty);
        }
        private void Icb_SelectedValueChanged(object sender, EventArgs e)
        {
            var icb = sender as ComboBox;

            if (icb == null)
            {
                return;
            }

            var tag  = icb.Tag as Tuple <FirmwareStringMetadata, int>;
            var item = icb.SelectedItem as ImagedItem <byte>;

            if (tag == null)
            {
                return;
            }
            if (item == null)
            {
                return;
            }

            var value = item.Value;
            var idx   = CharLayoutPanel.Controls.IndexOf(icb);

            m_firmware.WriteChar(value, tag.Item2, tag.Item1);
            var itemRect = StringListBox.GetItemRectangle(LastSelectedStringListBoxItemIndex);

            StringListBox.Invalidate(itemRect);
            ImageCacheManager.RebuildStringImageCache(m_firmware, BlockType.Block1);

            UpdateStringPreview();

            if (value == 0x00)
            {
                for (var i = idx + 1; i < CharLayoutPanel.Controls.Count; i++)
                {
                    var relatedIcb = CharLayoutPanel.Controls[i] as ComboBox;
                    if (relatedIcb == null)
                    {
                        continue;
                    }

                    relatedIcb.SelectedIndex = 0;
                    relatedIcb.Enabled       = false;
                }
            }
            else if (idx + 1 < CharLayoutPanel.Controls.Count)
            {
                var relatedIcb = CharLayoutPanel.Controls[idx + 1] as ComboBox;
                if (relatedIcb == null)
                {
                    return;
                }

                if (relatedIcb.SelectedIndex == 0 && !relatedIcb.Enabled)
                {
                    relatedIcb.Enabled = true;
                }
            }

            IsDirty = true;
        }