C# 在类中使用封闭形式中的值
我试图从一个将被关闭的表单中获取一些字符串变量的值。表单用于从用户处获取公司信息。这些值将在类中用于创建pdf。我已经尝试了很多事情,但我没有做到,因为我认为我在完全理解OOP方面有问题。这是我的审判: 在待关闭的表格中:C# 在类中使用封闭形式中的值,c#,winforms,oop,C#,Winforms,Oop,我试图从一个将被关闭的表单中获取一些字符串变量的值。表单用于从用户处获取公司信息。这些值将在类中用于创建pdf。我已经尝试了很多事情,但我没有做到,因为我认为我在完全理解OOP方面有问题。这是我的审判: 在待关闭的表格中: MyClass MyCls = new MyClass(); private void FrmCompanyInfo_FormClosed(object sender, FormClosedEventArgs e) { MyCls.AssignVal
MyClass MyCls = new MyClass();
private void FrmCompanyInfo_FormClosed(object sender, FormClosedEventArgs e)
{
MyCls.AssignValues(LogoFileName_, CompanyName_, CompanyAddress_);
}
LogoFileName、CompanyName、CompanyAddress是保存文本框中值的字符串
这是我课堂的一部分:
public class MyClass
{
private string LogoFileName { get; set; }
private string CompanyName { get; set; }
private string CompanyAddress { get; set; }
public void AssignValues(string LFN, string CN, string CA)
{
LogoFileName = LFN;
CompanyName = CN;
CompanyAddress = CA;
}
if (LogoFileName != null)
{
//it goes...
关闭表单后,类中的变量变为null。例如,上面的if条件不满足
你能指出我的错误,或者给我一个更好的建议吗 您应该在Form.Closing事件中执行此操作,而不是在Form.Closed中执行此操作 编辑:有关如何执行此操作的更多详细信息,请参阅。您不应该在关闭的窗体上声明对象,而是在调用窗体上。
参见:如果您的表单意在填充一个实例:“代码> COPMANYNEFION/CODE >,您可能需要考虑这样的模式:
public partial class CompanyInfoForm
{
public static CompanyInfo ShowEditCompany()
{
var form = new CompanyInfoForm();
form.ShowDialog();
return form.EditingCompany;
}
}
其中,EditingCompany
可能是通过读取相应的文本框
值构建的属性。然后,您可以重用该表单:
var companyInfo = CompanyInfoForm.ShowEditCompany();
谢谢你,但是很抱歉,我没有得到你的解决方案,链接上也没有。它对你来说是非常清晰的。“public static CompanyInfo ShowEditCompany()”的用途是什么。我不明白为什么要使用“form.ShowDialog()”。