【问题标题】:listboxes multiple choices different descriptions error列表框多项选择不同的描述错误
【发布时间】:2017-02-26 16:07:35
【问题描述】:

我创建了一个listbox,里面应该有多个选项,通过选择其中一个选项,将在标签中显示选择的选项描述,这个区分不同的选择

我想出了这个代码:

       public Form1()
        {
            InitializeComponent();

            listBox1.DataSource = choices;              
            listBox1.DisplayMember = "name"; 
        }

        private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
        {

            label1.Text = valikud.ElementAt(listBox1.SelectedIndex).description;
        }

        List<dynamic> choices = new List<dynamic>()
        {
            new {

                name = "Choice 1",
                description = "Description 1"
            },
            new {
                name = "Choice 2",
                description = "Description 2"
            }
        };
    }
}

这适用于常规形式,当我将其添加到我的其他程序到user control 时出现问题,问题出现在:

List<*dynamic*> choices = new List<dynamic>()

错误状态:

错误 CS1980 无法定义使用“动态”的类或成员,因为找不到编译器所需的类型“System.Runtime.CompilerServices.DynamicAttribute”。您是否缺少参考资料?

更新:问题是由于我的 .net 框架版本过时,我在 3.0 之前更新到 4.6

但是现在这引起了一个新问题:

 private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
        {

            label1.Text = *choices.ElementAt(listBox1.SelectedIndex)*.description;
        }

错误状态:

错误 CS0656 缺少编译器所需的成员“Microsoft.CSharp.RuntimeBinder.CSharpArgumentInfo.Create”

我怎么可能解决这个问题? -谢谢

【问题讨论】:

  • 我认为这是项目所针对的框架的问题。项目的框架版本是什么?
  • @ChetanRanpariya 3.5 我认为

标签: c# winforms listbox user-controls


【解决方案1】:

您需要检查出现此错误的项目的框架版本。

.NET Framework 4.0 或更高版本支持动态关键字和类型。

确保您项目的目标框架为 4.0 或更高版本,它应该可以解决您的问题。

【讨论】:

  • 我更新了我的答案。为之前的回答道歉。
  • 我安装了所需的框架版本,但错误仍然存​​在
  • 您的项目是否指向正确的版本?您安装了哪些版本?
  • 所以我解决了这个问题,该项目没有针对正确的 .net 版本,但这导致了一个新问题,我将其编辑到帖子中
  • 你最好问另一个问题而不是修改这个
猜你喜欢
  • 2017-06-15
  • 1970-01-01
  • 1970-01-01
  • 2020-09-30
  • 2016-09-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-10-15
相关资源
最近更新 更多