Example #1
0
        private void Add_Data_Btn_Click(object sender, EventArgs e)
        {
            if (DataList.Columns.Count <= 1)
            {
                return;
            }

            //get index
            int index;

            if (DataList.SelectedIndices.Count == 0)
            {
                index = DataList.Items.Count + 1;
            }
            else
            {
                index = DataList.SelectedIndices[0] + 1;
            }
            //get item
            var item       = new ListViewItem(index.ToString());
            var comboBoxes = Dataset_splitContainer.Panel2.Controls.OfType <ComboBox>().OrderBy(c => c.Location.X);

            foreach (var combo in comboBoxes)
            {
                if (combo.Equals(comboBoxes.ElementAt(0)) && combo.SelectedItem.ToString().Equals("[Silence]"))
                {
                    MessageBox.Show("Choosing silence as speech will cause never-ending-playback, you have to stop the playback manually.", "WARNING",
                                    MessageBoxButtons.OK, MessageBoxIcon.Warning);
                }
                item.SubItems.Add(new ListViewItem.ListViewSubItem(item, combo.SelectedItem.ToString()));
            }

            //add
            var arr = new ListViewItem[DataList.Items.Count];

            DataList.Items.CopyTo(arr, 0);
            DataList.Items.Clear();
            var arrList = arr.ToList();

            arrList.Insert(index - 1, item);
            DataList.Items.AddRange(arrList.ToArray());
            //update #
            foreach (ListViewItem listViewItem in DataList.Items)
            {
                listViewItem.SubItems[0].Text = (listViewItem.Index + 1).ToString();
            }
            //select the new item
            foreach (ListViewItem listViewItem in DataList.SelectedItems)
            {
                listViewItem.Selected = false;
            }
            DataList.Items[index - 1].Selected = true;
            DataList.Select();
            DataList.EnsureVisible(index - 1);
        }