错误CS1061:“...不包含定义,也没有扩展方法...接受第一个参数类型”的问题找不到。

7

我是.NET visual studio的新手,正在构建Windows窗体应用程序。

在尝试构建解决方案时,我遇到了以下描述的错误。我不确定它是否与文件'SuperAdventure.SuperAdventure'或未指定的控件有关。

'SuperAdventure.SuperAdventure' 不包含 'label5_Click' 的定义,也没有接受类型为'SuperAdventure.SuperAdventure'的第一个参数的扩展方法'label5_Click' 可以被找到(您是否缺少使用指令或程序集引用?)

这是错误代码,标记行的代码下面显示着红色波浪线/线。

// lblExperience
// 
this.lblExperience.AutoSize = true;
this.lblExperience.Location = new System.Drawing.Point(110, 73);
this.lblExperience.Name = "lblExperience";
this.lblExperience.Size = new System.Drawing.Size(35, 13);
this.lblExperience.TabIndex = 6;
this.lblExperience.Text = "label7";
this.lblExperience.Click += new System.EventHandler(this.label5_Click); // <-- squiggly line here

输出结果如下:

  1. 1>------ 开始构建: 项目: Engine, 模式: Release Any CPU ------

  2. 1> Engine -> C:\Users\Admin\Documents\Visual Studio
    2013\Projects\SuperAdventure\Engine\bin\Release\Engine.dll

  3. 2>------ 开始构建: 项目: SuperAdventure, 模式: Release Any
    CPU ------

  4. 2>c:\Users\Admin\Documents\Visual Studio
    2013\Projects\SuperAdventure.Designer.cs(119,70,119,82): 错误
    CS1061: 'SuperAdventure.SuperAdventure' 不包含 'label5_Click' 的定义,且找不到接受类型为 'SuperAdventure.SuperAdventure' 的第一个参数的扩展方法 'label5_Click'(是否缺少 using 指令或程序集引用?) ========== 构建: 成功 1 个,失败 1 个,最新 0 个,跳过 0 个 =========

如果需要提供更多信息请告知。 PS:我是初学者,正在通过制作RPG游戏来练习一些C#。


1
你好,欢迎来到stackoverflow。你能提供一下导致这个问题的代码吗?看起来好像有些东西在某处尝试引用 label5_Click。在Visual Studio中,你可以使用 Ctrl+Shift+F 来查找解决方案中所有字符串的引用。 - JamesFaix
2
看起来您在设计器窗口中意外点击了标签,设计器添加了一个事件处理程序(label5_Click)。然后您从代码文件中删除了该处理程序,但忘记删除设计器.cs文件中的此赋值。 - René Vogt
1
这应该标记为WinForms而不是asp.net。我开始编程是因为想写游戏,这导致我买了大量的书籍并努力学习,只有几年后才发现我一开始就太过头了。所以不要害羞,但如果你愿意听取建议,你还有很长很长的路要走。我建议你先花时间观看视频和阅读书籍,这将在你深入学习之前节省很多时间和挣扎。 - Michael Puckett II
3个回答

4

快速解决方案:删除 this.lblExperience 并重新创建。

控件似乎无法找到其单击事件处理程序,而不需要变得太复杂,删除控件然后双击它将创建一个新的处理程序并正确绑定它。

其他快速解决方案:删除那一行。但是这样就没有单击事件的处理程序了,这可能是有意为之的。


4
这句话的意思是,这就像因为车子脏了就买了一辆新车,但还是很高兴它能正常运转。 - Davesoft

1
当您使用CodeFirst创建数据库或使用Identity注册用户并将类添加到IdentityModes中时,可以使用IDbSet和DbSet。如果您在IDbSet上按F12,则会发现它无法访问像FindAsync这样的异步方法。但是,当您使用DbSet时,此方法可访问异步方法,并且如果您在DbSet上按F12,则可以看到它。当asp mvc自动生成控制器并以异步模式使用时,您可能会遇到一些错误,例如“Error CS1061“...不包含定义,也找不到接受第一个参数类型”的扩展方法”。您必须转到DbContext类并将IDbSet<>更改为DbSet<>,然后此错误就会消失,并且您的项目将成功运行。感谢您的时间。

0
对我而言,我打开了 IdentityModel 类并修改了 System.Data.Entity,最终结果为:
public System.Data.Entity.DbSet<EventSystem.Models.Admin> Admins { get; set; }

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接