воскресенье, 14 июля 2013 г.

Работа с элементом ListBox и массивами

Разработаем следующее Windows-приложение. В поле ListBox вывести в виде списка элементы массива строк. Выделяя элемент списка, будем удалять его и из списка и из массива. Обеспечим возможность восстановления начального состояния списка. Некоторые свойства элементов зададим в коде.

Разместите на форме элементы управления Button, ListBox.
Задайте свойства: Form1:Text = ListBox
button1:Text =         Отобразить начальный список
button2:Text = Удалить выбранный элемент




Текст из проекта winProgram_2 решения winProgram_1

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()//.. конструктор
        {           
            InitializeComponent();
// Свойства формы:
            this.StartPosition = FormStartPosition.CenterScreen;
            this.Text = "ListBox";
// Установить начальные свойства элементов:
            listBox1.Visible = false;   // не показывать!
            button2.Visible = false;     // не показывать!
        }
// поля класса Form1:
string [] lines = new string[]
            {"один","два","три","четыре","пять","шесть","семь" };
string [] newLines = null;

        private void button1_Click(object sender, EventArgs e)
        {// показать исходный список:
            listBox1.Visible = true;    // показать listBox1
            listBox1.Items.Clear();     // очистить
            listBox1.Items.AddRange(lines); // поместить строки
            newLines = lines;            //
            button2.Visible = true;     // показать button2
        }

        private void button2_Click(object sender, EventArgs e)
        {// удалить выбранный элемент:
            int n = listBox1.SelectedIndex;    // Выделенная строка
            if (n == -1) return;    //.. ничего не выбрано
            string [] tempLines = new string[newLines.Length-1];
            for (int k=0, i=0; i<newLines.Length; i++)
                if(i != n) tempLines[k++] = newLines[i];
            newLines = tempLines;
            listBox1.Items.Clear(); // очистить
            listBox1.Items.AddRange(newLines);  // поместить строки
        }
    }
}