gpt4 book ai didi

c# - 设置来自另一个类的表单值的属性

转载 作者:太空宇宙 更新时间:2023-11-03 14:48:25 24 4
gpt4 key购买 nike

我已经用表格完成了一段时间的作业,一切正常,但是我的教授希望我们将所有内容分配到单独的类(class)中。

所以我现在拥有的是:

MainForm.cs
MainForm.Designer.cs
MainForm.resx
program.cs

在 MainForm.cs 中,我拥有所有代码以及调用按钮、标签、文本框等的地方。我想做的是与其他类建立结构,例如

MainForm.cs
MainForm.Designer.cs
MainForm.resx
program.cs
class1.cs
class2.cs

我尝试这样做,但是从我的 class1 中我无法调用表单的设计(名称),因为它不存在于上下文中。我一直在搜索,但没有找到任何符合我的问题或如何解决它的东西。我该如何解决这个问题?

最佳答案

对于任何可以从另一个类访问的属性(另一种形式,例如 Form 本身就是一个类),该属性必须是公共(public)的,例如,假设您有一个名为 的文本框>txtSomething 并且您需要访问它的文本,您可以创建一个公共(public)属性来获取和设置它的 Text 属性:

public string SomeProperty { get { return txtSomething.Text;} set {txtSomething.Text = value;}}

您当然可以更改 MainForm.Designer.cs 并在定义它们的地方公开所有控件(例如文本框),但这根本不是一个好的选择。因为您应该始终只在需要的地方提供公共(public)访问权限。例如,如果您需要控件文本,则只允许访问其文本属性(上面的代码)。

即使,如果第二个表单只是获取文本框值并且确实需要设置它,您也可以授予只读访问权限。所以上面的代码是:

public string SomeProperty { get { return txtSomething.Text;} }

然后假设 FrmMain 的实例是 frmMain 您可以像这样访问该文本框的 Text 属性:

string propertyValue = frmMain.SomeProperty;

关于c# - 设置来自另一个类的表单值的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53033996/

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