不能同时在两个字段(文本和选定项)中使用变量

时间:2019-10-02 17:46:28

标签: c# winforms

我想将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.selecteditemLabel2.text上工作。

我的问题尤其在第15行和第16行中,这与Public static有关。

1 个答案:

答案 0 :(得分:0)

您可以写:

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

它使用列表框的选定项目对象,然后调用标准的ToString()方法,该模式将返回对象的可读字符串表示形式/含义。

此字符串在列表框中显示给用户:

  • 如果项目是字符串,它将返回字符串本身。
  • 如果项目是数字,它将返回转换为字符串的数字。
  • 如果项目是其他对象,相同类型或混合类型,则默认情况下将返回这些对象的类型名称或这些类型的替代方法ToString()中编码的内容。