/// <summary> /// 項目の真偽値を反転させる /// </summary> /// <param name="flag">初期真偽値</param> private void InvertFlag(bool flag) { ListViewItemEditEventArgs ie = new ListViewItemEditEventArgs(_editingRowIndex, _editingColumnIndex, !flag); BeforeItemEdit?.Invoke(this, ie); // キャンセルされれば項目を更新しない if (ie.Cancel) { return; } AfterItemEdit?.Invoke(this, ie); }
/// <summary> /// リスト編集時の処理 /// </summary> private void OnListFinishEdit(object sender, CancelEventArgs e) { InlineComboBox comboBox = sender as InlineComboBox; if (comboBox == null) { return; } string s = comboBox.Text; int index = comboBox.SelectedIndex; // イベントハンドラを削除する comboBox.FinishEdit -= OnListFinishEdit; // 編集用コンボボックスを削除する Controls.Remove(comboBox); // キャンセルされれば項目を更新しない if (e.Cancel) { return; } ListViewItem item = Items[_editingRowIndex]; ListViewItem.ListViewSubItem subItem = item.SubItems[_editingColumnIndex]; ListViewItemEditEventArgs ie = new ListViewItemEditEventArgs(_editingRowIndex, _editingColumnIndex, s, index); BeforeItemEdit?.Invoke(this, ie); // キャンセルされれば項目を更新しない if (ie.Cancel) { return; } // 項目の文字列を更新する subItem.Text = comboBox.Items[index].ToString(); AfterItemEdit?.Invoke(this, ie); }
/// <summary> /// 文字列編集時の処理 /// </summary> private void OnTextFinishEdit(object sender, CancelEventArgs e) { InlineTextBox textBox = sender as InlineTextBox; if (textBox == null) { return; } string text = textBox.Text; // イベントハンドラを削除する textBox.FinishEdit -= OnTextFinishEdit; // 編集用テキストボックスを削除する Controls.Remove(textBox); // キャンセルされれば項目を更新しない if (e.Cancel) { return; } ListViewItem item = Items[_editingRowIndex]; ListViewItem.ListViewSubItem subItem = item.SubItems[_editingColumnIndex]; ListViewItemEditEventArgs ie = new ListViewItemEditEventArgs(_editingRowIndex, _editingColumnIndex, textBox.Text); BeforeItemEdit?.Invoke(this, ie); // キャンセルされれば項目を更新しない if (ie.Cancel) { return; } // 項目の文字列を更新する subItem.Text = text; AfterItemEdit?.Invoke(this, ie); }