private void ListFilters_SelectedIndexChanged(object sender, EventArgs e) { if (_multiSelState != MultiSelectionState.None) //複数選択処理中は無視する return; ShowDetail(); var selectedCount = this.ListFilters.SelectedIndices.Count; if (selectedCount == 0) { this.RuleEnableButtonMode = EnableButtonMode.NotSelected; } else { if (selectedCount == 1 || this.RuleEnableButtonMode == EnableButtonMode.NotSelected) { var topItem = (PostFilterRule)this.ListFilters.SelectedItem; this.RuleEnableButtonMode = topItem.Enabled ? EnableButtonMode.Disable : EnableButtonMode.Enable; } } }
private void buttonRuleToggleEnabled_Click(object sender, EventArgs e) { if (this.RuleEnableButtonMode == EnableButtonMode.NotSelected) return; var enabled = this.RuleEnableButtonMode == EnableButtonMode.Enable; foreach (var idx in this.ListFilters.SelectedIndices.Cast<int>()) { var filter = (PostFilterRule)this.ListFilters.Items[idx]; if (filter.Enabled != enabled) { filter.Enabled = enabled; var itemRect = this.ListFilters.GetItemRectangle(idx); this.ListFilters.Invalidate(itemRect); } } this.RuleEnableButtonMode = enabled ? EnableButtonMode.Disable : EnableButtonMode.Enable; }