Beispiel #1
0
        /// <summary>
        ///     項目編集用テキストボックスを表示する
        /// </summary>
        /// <param name="text">初期文字列</param>
        /// <param name="location">テキストボックスの位置</param>
        /// <param name="size">テキストボックスのサイズ</param>
        private void ShowEditTextBox(string text, Point location, Size size)
        {
            InlineTextBox textBox = new InlineTextBox(text, location, size, this);

            textBox.FinishEdit += OnTextFinishEdit;
            Controls.Add(textBox);
        }
Beispiel #2
0
        /// <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);
        }
Beispiel #3
0
 /// <summary>
 ///     項目編集用テキストボックスを表示する
 /// </summary>
 /// <param name="text">初期文字列</param>
 /// <param name="location">テキストボックスの位置</param>
 /// <param name="size">テキストボックスのサイズ</param>
 private void ShowEditTextBox(string text, Point location, Size size)
 {
     InlineTextBox textBox = new InlineTextBox(text, location, size, this);
     textBox.FinishEdit += OnTextFinishEdit;
     Controls.Add(textBox);
 }