Невозможно использовать переменную для обоих полей (текст и выбранный элемент) - PullRequest
0 голосов
/ 02 октября 2019

Я хотел использовать Disk.Diskvolume как глобальную переменную, чтобы она содержала данные из Listbox1. При создании той же переменной, что и текст для метки, выдается ошибка:

"Cannot implicitly convert type 'object' to 'string'. An explicit conversion exists (are you missing a cast?)"  

Я создал статический класс с именем Disk и включил Diskvolume в качестве статического объекта. Я сделал это так, чтобы он использовал элемент из listbox1 всякий раз, когда его индекс изменился, но кажется, что он не работает для Label.text;при использовании строки она не работает с Listbox1.selectedItem

public partial class Form1 : Form
    {
        public static class Disk
        {
         public static string Diskvolume;
        }
        public Form1()
        {
            InitializeComponent();
        }
        private void ListBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            //The Labels Will Change depending on the Chosen DriveLetter
            Disk.Diskvolume = ListBox1.SelectedItem;
            Label2.Text = Disk.Diskvolume;
        }

        private void Button2_Click(object sender, EventArgs e)
        {

        }
    }

Я ожидал, что Disk.Diskvolume будет работать как на Listbox1.selecteditem, так и на Label2.text.

Мои проблемы особенноСтроки 15 и 16, и это связано с Public static.

1 Ответ

0 голосов
/ 02 октября 2019

Вы можете написать:

Disk.Diskvolume = ListBox1.SelectedItem.ToString();

Он берет выбранный объект элемента из списка и затем вызывает стандартный метод ToString(), шаблон которого должен вернуть читаемое строковое представление / значение объекта.

Именно эта строка отображается пользователю в списке:

  • Если элементы являются строками, то возвращаются сами строки.
  • Если элементы являются числами, он возвращает числа, преобразованные в строку.
  • Если элементы являются другими объектами того же типа или смешанными типами, он возвращает по умолчанию имя типа этих объектов или то, что было закодировано в переопределенных ToString() метод этих типов.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...