Example #1
0
        /// <summary>
        ///     項目編集用コンボボックスを表示する
        /// </summary>
        /// <param name="items">項目リスト</param>
        /// <param name="index">初期インデックス</param>
        /// <param name="location">コンボボックスの位置</param>
        /// <param name="size">コンボボックスのサイズ</param>
        /// <param name="dropDownWidth">ドロップダウンリストの幅</param>
        private void ShowEditComboBox(IEnumerable <string> items, int index, Point location, Size size, int dropDownWidth)
        {
            InlineComboBox comboBox = new InlineComboBox(items, index, location, size, dropDownWidth, this);

            comboBox.FinishEdit += OnListFinishEdit;
            Controls.Add(comboBox);
        }
Example #2
0
        /// <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);
        }
Example #3
0
 /// <summary>
 ///     項目編集用コンボボックスを表示する
 /// </summary>
 /// <param name="items">項目リスト</param>
 /// <param name="index">初期インデックス</param>
 /// <param name="location">コンボボックスの位置</param>
 /// <param name="size">コンボボックスのサイズ</param>
 /// <param name="dropDownWidth">ドロップダウンリストの幅</param>
 private void ShowEditComboBox(IEnumerable<string> items, int index, Point location, Size size, int dropDownWidth)
 {
     InlineComboBox comboBox = new InlineComboBox(items, index, location, size, dropDownWidth, this);
     comboBox.FinishEdit += OnListFinishEdit;
     Controls.Add(comboBox);
 }