Не могу обратиться к классу в c#

326
05 января 2017, 04:35

Написал программу каталогизатор, прописывал все прямо в теле обработчиков событий. Но препод наругал, сказал, что все должно быть красиво, и сказал переделать с использованием классов. Он хочет чтобы обработчики обращались к классам. Кнопка удалить не работает, хотя программа запускается. Подскажите пожалуйста, что я делаю не так. Вот код: Сам класс

public static class Delete
{
    public static void del()
    {    
        ListBox listBox1 = new ListBox();
        TextBox textBox1 = new TextBox();
        listBox1.Items.Remove(listBox1.SelectedItem);
        textBox1.Text = "";
        textBox1.Clear();
    }
}

А вот то место, где идет обращение к нему

public void deleteButton_Click(object sender, EventArgs e)
{
    // удаляет выбранный элемент из списка
    Delete.del();
}
Answer 1

Твой класс ничего не знает об элементах формы и поэтому он не работает!

Ты зачем-то внутри своего класса создаешь новые объекты, которые никак не связаны с тем, что ты видишь на форме.

Что бы все работало, ты должен сделать метод, который принимает объекты ListBox и TextBox и тогда, класс будет работать с реальными объктами на форме.

UPD

public static class Delete
{
    public static void del(ListBox listBox1,TextBox textBox1)//добавляешь аргументы в метод
    {    
        listBox1.Items.Remove(listBox1.SelectedItem);
        textBox1.Text = "";
        textBox1.Clear();
    }
}

И передавай элементы:

public void deleteButton_Click(object sender, EventArgs e)
{
    // удаляет выбранный элемент из списка
    Delete.del(listBox1,textBox1);
}
Answer 2
public void deleteButton_Click(object sender, EventArgs e)
{
  if (listBox1.SelectedItem != -1)
    listBox1.Items.Remove(listBox1.SelectedItem);
  textBox1.Clear();
}
READ ALSO
Вывод тегов bass.net в Label.Content

Вывод тегов bass.net в Label.Content

Во время проигрывания потока в момент смены трека на радио, происходит захват новых meta данных (Исполнитель и Название трека), как их вывести...

345
Как лучше объединить две ветки?

Как лучше объединить две ветки?

Одна ветка соединяется с другой (node и node_ser)Внутри них множество вложенных узлов

263
Генератор рерайтов PHP

Генератор рерайтов PHP

Не могу выполнить задание:

288
Как узнать качество видео и поменять его с помощью ffmpeg

Как узнать качество видео и поменять его с помощью ffmpeg

Делаю загрузку видео и есть необходимость обрабатывать видео на сервере, для дальнейшей публикации

327