【问题标题】:Pasting control event code in C#在 C# 中粘贴控件事件代码
【发布时间】:2013-05-04 20:04:53
【问题描述】:

这对某些人来说似乎是一个有趣的问题,但我来自 VB,所以这似乎有点奇怪。为什么当你从另一个窗体复制控件,然后将代码复制到 c# 中的代码后面时,即使它在 Visual Studio 中有控件名称和事件,它也不会自动绑定到该控件?

我知道 VB 有额外的代码来显示它处理控件事件,所以它使它有点不同,但它很难从其他地方粘贴大量代码。所以我倾向于怀疑我是否是遗漏了什么。

我注意到的另一件事是在 Visual Studio 中使用 VB.net,代码编辑器有一个事件下拉菜单,显示所有控件事件,而在 C# 中它只显示其中包含代码的事件。在 VS 中查看所有事件的唯一方法是属性资源管理器的事件列。

再次为我的无知感到抱歉,但我想确保我尽可能高效,并想确保我没有关闭某些选项或其他什么。

【问题讨论】:

  • @Idle_Mind,您的评论值得回答。
  • 发表了我之前的评论作为答案。谢谢@gunr2171。

标签: c# .net vb.net visual-studio-2010


【解决方案1】:

这是来自 VB 的人的常见抱怨。 VB.Net 使用“WithEvents/Handles”组合来允许代码处理事件,这就是为什么您可以将代码复制粘贴到不同的形式。 C# 没有这样的等价物。你可以在 C# 中做一些事情,但是 VB.Net 做不到。例如,您可以在代码中连接一个事件,IDE 会自动为您插入一个带有正确签名的方法存根。要在 VB 中执行此操作,需要在类级别单独声明 WithEvents,然后从 IDE 的下拉列表中选择控件/事件。两者都不是更好,只是不同!

【讨论】:

  • 谢谢闲心。我很高兴发现我并没有遗漏一些东西,尽管在这方面它不像 vb 那样简单,但我承认有点失望。
  • 我花了一点时间,但现在我习惯了切换到表单设计器视图,选择一个控件,点击属性窗格中的“闪电”图标,找到我想要的事件,然后双击它的右侧以获取为我输入的方法存根处理程序。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-11-12
  • 1970-01-01
  • 2010-09-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多