protected ToolStripCheckboxItem Add(CheckBoxItem item) { ToolStripCheckboxItem tsi = new ToolStripCheckboxItem(item); tsi.BackColor = this.BackColor; tsi.CheckedChanged += CheckedChanged; popup.Items.Add(tsi); ItemsAltered(); return(tsi); }
protected override void CheckedChanged(CheckBoxItem item) { base.CheckedChanged(item); Enum previous = enumValue; long value = (previous != null) ? previous.GetInt64() : 0; if (item.Checked) { value |= item.Value; } else { value &= ~item.Value; } enumValue = (Enum)Enum.ToObject(enumType, value); }
protected void Remove(CheckBoxItem item) { int altered = 0; foreach (ToolStripCheckboxItem tsi in GetToolStripCheckboxItems()) { if (tsi.Value == item.Value) { tsi.CheckedChanged -= CheckedChanged; popup.Items.Remove(tsi); altered++; } } if (altered > 0) { ItemsAltered(); } }
protected void Update(CheckBoxItem item) { foreach (ToolStripCheckboxItem tsi in GetToolStripCheckboxItems()) { if (item.Value != tsi.Item.Value) { continue; } if (item.Text != tsi.Item.Text) { tsi.SetText(item.Text); } if (item.Checked != tsi.Item.Checked) { tsi.SetChecked(item.Checked); } } }
public ToolStripCheckboxItem(CheckBoxItem source, bool allowUserCheck = true, bool allowUserUncheck = true) : base(new CheckBox()) { item = source; checkbox = Control as CheckBox; checkbox.Checked = item.Checked; checkbox.Text = item.Text; checkbox.AutoCheck = false; checkbox.Click += delegate(object sender, EventArgs e) { if (checkbox.Checked && !allowUserUncheck) { return; } if (!checkbox.Checked && !allowUserCheck) { return; } checkbox.Checked = !checkbox.Checked; }; checkbox.CheckedChanged += delegate(object sender, EventArgs e) { item.Checked = checkbox.Checked; if (CheckedChanged != null) { CheckedChanged(this, e); } }; checkbox.CheckStateChanged += delegate(object sender, EventArgs e) { if (CheckStateChanged != null) { CheckStateChanged(this, e); } }; }
public ToolStripCheckboxItem(CheckBoxItem source, bool allowUserCheck = true, bool allowUserUncheck = true) : base(new CheckBox()) { item = source; this.Width = 100; checkbox = Control as CheckBox; //checkbox.AutoSize = true; //checkbox.Width = 100; checkbox.Checked = item.Checked; checkbox.Text = item.Text; checkbox.AutoCheck = false; checkbox.Click += delegate(object sender, EventArgs e) { if (checkbox.Checked && !allowUserUncheck) return; if (!checkbox.Checked && !allowUserCheck) return; checkbox.Checked = !checkbox.Checked; }; checkbox.CheckedChanged += delegate(object sender, EventArgs e) { item.Checked = checkbox.Checked; if (CheckedChanged != null) CheckedChanged(this, e); }; checkbox.CheckStateChanged += delegate(object sender, EventArgs e) { if (CheckStateChanged != null) CheckStateChanged(this, e); }; }
protected void Update(CheckBoxItem item) { foreach (ToolStripCheckboxItem tsi in GetToolStripCheckboxItem()) { if (item.Value != tsi.Item.Value) continue; if (item.Text != tsi.Item.Text) tsi.SetText(item.Text); if (item.Checked != tsi.Item.Checked) tsi.SetChecked(item.Checked); } }
protected void Remove(CheckBoxItem item) { foreach (ToolStripCheckboxItem tsi in GetToolStripCheckboxItem()) { if (tsi.Value == item.Value) { tsi.CheckedChanged -= CheckedChanged; popup.Items.Remove(tsi); } } ItemsAltered(); }
protected virtual void CheckedChanged(CheckBoxItem item) { }
protected ToolStripCheckboxItem Add(CheckBoxItem item) { ToolStripCheckboxItem tsi = new ToolStripCheckboxItem(item); tsi.BackColor = this.BackColor; tsi.Width = this.Width - 35; tsi.CheckedChanged += CheckedChanged; popup.Items.Add(tsi); ItemsAltered(); return tsi; }
protected override void CheckedChanged(CheckBoxItem item) { base.CheckedChanged(item); Enum previous = enumValue; if (previous == null) return; long value = previous.GetInt64(); if (item.Checked) value |= item.Value; else value &= ~item.Value; enumValue = (Enum)Enum.ToObject(enumType, value); }