【问题标题】:Button does not contain a definiton for ID按钮不包含 ID 的定义
【发布时间】:2017-05-06 21:13:59
【问题描述】:

这是我的Form1.cs 文件。该方法应以MessageBox 显示单击按钮的 ID,但我收到此错误。

private void button_Click(object sender, EventArgs e)
        {

            Button button = sender as Button;
            string buttonId = button.ID;
            MessageBox.Show(buttonId);
        }

错误:

“按钮”不包含“ID”的定义,也没有扩展名 可以找到接受“按钮”类型的第一个参数的方法“ID” (您是否缺少 using 指令或程序集引用?)

【问题讨论】:

  • 这是一个 ASP.NET 网站还是一个 Windows 应用程序?
  • 您是否使用了正确的命名空间?
  • 这是一个 Windows 应用程序。
  • 我想提一下我是 C# 新手。
  • 您在 Windows 窗体应用程序中没有名为 ID 的属性。查看此链接以了解 Button 类的属性msdn.microsoft.com/en-us/library/…

标签: c# button sender


【解决方案1】:

如果这是一个 Windows 窗体应用程序,则内置的 Button 控件没有名为 ID 的属性。您可能想要获取 Name 属性,该属性对于每个按钮控件都是唯一的。

一个简单的例子:

private void button_Click(object sender, EventArgs e)
{
    Button button = sender as Button;
    string buttonName = button.Name; //Button does not have an ID - use Name instead
    MessageBox.Show(buttonName);
}

【讨论】:

  • 是的,我能做到。但我想得到按钮的订单号。
  • 订单号到底是什么意思?您可以尝试使用 button.TabIndex 属性,但该值对于每个按钮来说不是唯一的。
  • 所以,当我点击button1时,我想得到第1个。当我点击button2时,得到第2个等等......
  • 我为每个按钮设置了相同的方法。我有大约 140 个按钮。
  • 我强烈建议您使用Name 属性,因为这对于每个按钮都是唯一的,然后适当地命名按钮以按您需要的顺序获取它们。或者,您可以在按钮的 Tag 属性中保存一个 ID,但同样不能保证此值是唯一的。
猜你喜欢
  • 2018-03-24
  • 2018-06-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-03-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多