private void Lb_ItemCheck(object sender, ItemCheckEventArgs e) { Enum changedItem = (Enum)lb.Items[e.Index]; if (e.NewValue == CheckState.Checked) { _value = _value.SetFlags(changedItem); } else { _value = _value.ClearFlags(changedItem); } OnCheckedChanged?.Invoke(this, changedItem); textbox.Text = _value.ToString(); }
/// <summary> /// 删除标识符并返回新值 /// </summary> /// <typeparam name="T">枚举类型</typeparam> /// <param name="variable">枚举值</param> /// <param name="flag">需要删除的标识符</param> /// <returns>返回新值</returns> public static T ClearFlag <T>(this Enum variable, T flag) { return(variable.ClearFlags(flag)); }