C# 如何将标签文本添加到代码dom中?

C# 如何将标签文本添加到代码dom中?,c#,codedom,C#,Codedom,我有一个表单,其中有各种标签和一个按钮。在按钮单击事件中,有一个编写的代码生成一个cs文件,我希望在其中显示标签的文本 我试图通过代码dom中的以下函数获取值,但我无法提取标签的值,即,我只获取label1.text、label2.text等。相反,我想要标签和组合框中的值 有人能帮忙吗 start.Statements.Add(新的CodeVariableReferenceExpression(“Info.Valid(“\”combobox1.SelectedValue.ToString()”

我有一个表单,其中有各种标签和一个按钮。在按钮单击事件中,有一个编写的代码生成一个cs文件,我希望在其中显示标签的文本

我试图通过代码dom中的以下函数获取值,但我无法提取标签的值,即,我只获取label1.text、label2.text等。相反,我想要标签和组合框中的值

有人能帮忙吗

start.Statements.Add(新的CodeVariableReferenceExpression(“Info.Valid(“\”combobox1.SelectedValue.ToString()”、“\”label1.Text\”、“\”label2.Text\”、“\”label3.Text\”、“\”numericupdown.Value.ToString()”);


这里start是要添加所有语句的CodeMemberMethod,Info是另一个类,Valid是一个方法,我需要将所有这些值作为参数传递给它。

没错,您的代码不应该提取任何值,因为您指定了文本常量。您可以使用string.Format方法来准备文本数据。请尝试以下方法:下文:

string pattern = "Info.Valid(\"\"{0}\"\", \"\"{1}\"\", \"\"{2}\"\", \"\"{3}\"\", \"\"{4}\")";
string data = string.Format(pattern,
            combobox1.SelectedValue.ToString(),
            label1.Text,
            label2.Text,
            label3.Text,
            numericupdown.Value.ToString());
start.Statements.Add(new CodeVariableReferenceExpression(data));

有关更多详细信息,请查看

这是一个错误“对象引用未设置为对象的实例”@user672894不幸的是,在这种情况下我无法帮助您。因为您没有提供生成异常的代码。实际上我有public void AddMethod()当我在同一个方法中包含这两行时,我包含了codedom的所有语句,这给了我一个错误:“Object reference not set to the instance of a Object”(对象引用未设置为对象的实例)这一行:“string data=string.Format(…);”我认为您之所以出现此错误是因为combobox。如果未选择任何项目,
SelectedValue
等于null,因此您不能调用其ToString,请在尝试之前从combobox中选择任何值。理想情况下,您应该在使用前检查
SelectedValue
是否为null。非常感谢您的帮助..很抱歉,我打扰了您太多。.但如果我只包含SelectedValue,则它可以工作,但我无法在输出中获取值,如果我包含SelectedValue.ToString,则会出现以下错误..:|