C# 在windows窗体文本框中显示代码结果

C# 在windows窗体文本框中显示代码结果,c#,winforms,C#,Winforms,我正在尝试使用windows窗体文本框获取代码生成的值。以下是生成值的代码: 我想使用表单设计器文本框(private System.Windows.Forms.textbox textBox1;)显示“console:writeline” publicstaticvoid TestGetRunSummaryResult() { //创建项目 string requestCreateProjectUri=OpenApiUri+string.Format(CreateProjectUri,“xml

我正在尝试使用windows窗体文本框获取代码生成的值。以下是生成值的代码:

我想使用表单设计器文本框(private System.Windows.Forms.textbox textBox1;)显示“console:writeline”

publicstaticvoid TestGetRunSummaryResult()
{
//创建项目
string requestCreateProjectUri=OpenApiUri+string.Format(CreateProjectUri,“xml”);
HttpWebResponse响应创建项目=
(HttpWebResponse)
_CallPostApi(requestCreateProjectUri,typeof(NewProjectItem),_GetProjectItem(“TestGetRunSummaryResultAPI”);
int newProjectId=反序列化HttpWebResponse(responseCreateProject);
projectListToBeDeleted.Add(新建ProjectId);
//创建一个基本运行
string requestCreateBaseRunUri=OpenApiUri+string.Format(CreateBaseRunUri,“xml”);
HttpWebResponse responseCreateBaseRun=
(HttpWebResponse)
_CallPostApi(requestCreateBaseRunUri,typeof(NewRunItem),_GetNewRunItem(newProjectId));
int newRunId=反序列化HttpWebResponse(responseCreateBaseRun);
string requestGetRunStatusUri=OpenApiUri+string.Format(GetRunStatus,newRunId,0,“json”);
int percentStatus=0;
而(百分比状态<100)
{
HttpWebResponse=(HttpWebResponse)\调用GetAPI(requestGetRunStatusUri);
Stream responseStream=response.GetResponseStream();
StreamReader=新的StreamReader(responseStream);
字符串结果=reader.ReadToEnd();
RunStatus RunStatus=DataContractJsonDeserialize(结果);
percentStatus=runStatus.StatusPercentDone;
Show(String.Format(“{0}%-{1}”,percentStatus,runStatus.DetailedStatus));
}
字符串requestGetRunSummaryResultsUri=OpenApiUri+
格式(GetRunSummaryResultsUri,newRunId,0,“json”);
HttpWebResponse response2=(HttpWebResponse)\调用GetAPI(requestGetRunSummaryResultsUri);
流responseStream2=response2.GetResponseStream();
StreamReader reader2=新的StreamReader(responseStream2);
字符串resultSummary=reader2.ReadToEnd();
RunResultSummary RunResultSummary=DataContractJsonDeserialize(resultSummary);
MessageBox.Show(“构建类型:“+runResultSummary.BuildingType”);
//Console.WriteLine(“的摘要运行结果:”+runResultSummary.Runtitle);
//Console.WriteLine(“位置:+runResultSummary.Location”);
//Console.WriteLine(“构建类型:+runResultSummary.BuildingType”);
//Console.WriteLine(“项目模板:”+runResultSummary.ProjectTemplateApplied);
//WriteLine(String.Format(“楼层面积:{0}{1}”,runresultsmary.floorrarea.Value,runresultsmary.floorrarea.Units));
//WriteLine(String.Format(“Electriciyt成本:{0}{1}”、runresultsmary.ElectricCost.Value、runresultsmary.ElectricCost.Units));
//WriteLine(String.Format(“年度能源成本:{0}”,runResultSummary.RunEnergyCarbonCostSummary.AnnualEnergyCost));
//WriteLine(String.Format(“生命周期成本:{0}”,runResultSummary.RunEnergyCarbonCostSummary.LifecycleCost));
//Console.WriteLine(String.Format(“年度二氧化碳排放量电力:{0}{1}”,runresultsmary.RunEnergyCarbonCostSummary.annualco2任务电力.Value,runresultsmary.RunEnergyCarbonCostSummary.annualco2任务电力.Units));
//Console.WriteLine(String.Format(“现场燃料的年二氧化碳排放量:{0}{1}”,RunResultsMMary.RunEnergyCarbonCostSummary.AnnualCo2任务SiteFuel.Value,RunResultsMMary.RunEnergyCarbonCostSummary.AnnualCo2任务SiteFuel.Units));
//Console.WriteLine(String.Format(“年度CO2排放量大型SUV当量:{0}{1}”,RunResultsCommand.RunEnergyCarbonCostSummary.AnnualCo2CommissionsLargesUVEquivalent.Value,RunResultsCommand.RunEnergyCarbonCostSummary.AnnualCo2CommissionsLargesUVEquivalent.Units));
//AreEqual(runResultSummary.Runtitle,“盒子模型”);
}

您有几个选择:

1.重新构造代码,使方法不是静态的。这可能不是一个坏的选择,因为静态通常是构建代码的坏方法

2.创建一个静态文本框,内容如下

static Textbox myTextBox;
然后在表单加载时将其设置为文本框,并使用它而不是Console.WriteLine()

3.将文本框作为参数传入

public static void TestGetRunSummaryResult(TextBox y)
{
    t.Text = "whatever";
}
4.使用回调方法


如果您使用的是多线程,那么不要忘记也使用TextBox.Invoke()。(:

问题出在哪里,您是否得到任何错误或未得到预期值?“生成值“
TestGetRunSummaryResult()
的代码正在返回
void
。如果我得到的是正确的,您需要从
TestGetRunSummaryResult()返回您想要的任何内容)
方法,以便显示您的
textBox1
。我可以使用messagebox获得正确的值。例如,“Building ID:Office”在我使用messagebox时返回。我希望在windows窗体中的文本框上显示相同的结果。但我无法使用此.texbox显示,因为它是一个静态方法
public static void TestGetRunSummaryResult(TextBox y)
{
    t.Text = "whatever";
}