gpt4 book ai didi

c# - 是什么导致设计器中并非每个事件都可用,我如何才能像在 VB.NET 中一样在 C# 中快速生成处理程序?

转载 作者:IT王子 更新时间:2023-10-29 04:18:42 24 4
gpt4 key购买 nike

在 Visual Studio 窗体设计器中,您可以通过双击“事件”列表中的“属性”窗口来添加事件处理程序。您还可以在代码 View 中添加事件处理程序(至少在 VB.NET 中),方法是在左侧下拉列表中选择关联的“事件”项,然后在右侧下拉列表中选择所需的事件。我的问题是:为什么有些事件只能通过后一种技术而不是前者获得?例如,HandleCreated 事件在代码 View 中可用:

enter image description here

但不在设计器中:

enter image description here

这在 VB.NET 中很好,因为我总是可以使用第一种技术来快速生成事件处理程序。然而,在C#中,第一种技术是不可能的,但问题仍然存在;也就是说,某些事件不会出现在“属性”窗口的设计器列表中。我所知道的创建事件处理程序的唯一其他方法是手动添加它,其中包括手动连接事件处理程序。

是否有一些技术因素导致“属性”窗口中的设计器事件列表中缺少某些事件?如果这是真的,我如何才能像在 VB.NET 中那样在 C# 中快速生成事件处理程序?

最佳答案

嗯,这是故意隐藏的。如果您查看 Control 类,HandleCreated 事件标有 Browsable(false),这意味着不在属性窗口中显示它。

[Browsable(false)]
[EditorBrowsable(EditorBrowsableState.Advanced)]
public event EventHandler HandleCreated;

如果你问我为什么?我不知道答案。这是一个设计决策,设计团队的任何人都必须回答这个问题。

我的猜测是它们隐藏了不那么重要的事件。您需要订阅多少次 HandleCreated?您通常订阅 Load 事件。

属于同一类别的其他一些很好的事件示例是 ControlAddedControlRemoved 等。如您所见,这些并不是很重要,它们对设计器是隐藏的.

How to easily subscribe the event in C# editor as like VB.net?

您无法像获取 VB.net 那样获取事件的组合框;您可以获得的最接近的是可以为您自动完成的 ide 支持(@HenkHolterman 的回答中已经提到;现已删除)。

键入 this.HandleCreated += ,然后是 tabtab

Ide 将为您连接事件。

关于c# - 是什么导致设计器中并非每个事件都可用,我如何才能像在 VB.NET 中一样在 C# 中快速生成处理程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29280864/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com