gpt4 book ai didi

c# - .NET 控件和范围

转载 作者:行者123 更新时间:2023-11-30 16:17:23 24 4
gpt4 key购买 nike

在编写涉及未通过 GUI 声明但在主源文件中声明的控件的事件处理函数时,程序员如何解决范围限制?

在全局范围内声明此类控件而不是 Form1_Load() 来解决此问题是否“可接受”?

private void Form1_Load(object sender, EventArgs e)
{
ComboBox t = new ComboBox();
Button b = new Button();
b.OnClick += b_OnClick;
}

private void b_OnClick(object sender, OnClickEventArgs e)
{
s.Add("Hello s!"); // The object s is a ComboBox control generated in the Designer GUI
t.Add("Hello t!");
}

// Line 10 is valid.
// Line 11 is invaid because t does not exist in the current scope. How might one work around this issue?

最佳答案

我认为这是可以接受的,如果您查看 form.designer 文件,您会注意到使用设计器创建的所有控件都是全局控件。所以我认为您可以在自己的代码中执行相同的操作。

但是,我认为在某些情况下您不需要这些控件,否则逻辑会指示您直接与设计器一起构建它们并避免使用该代码。

当然,您上面的代码缺少一些绝对必要的信息,例如位置、大小、名称和最重要的信息。 Form.Controls.Add(control) 语句,但我不知道这是否是由于简化了您的问题。

关于c# - .NET 控件和范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17253265/

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