我正在尝试使用Windows窗体Textbox显示代码生成的值。以下是生成值的代码:
我想使用表单设计器文本框显示“console:writeline”(私有System.Windows.Forms.TextBox textBox1;)
public static void TestGetRunSummaryResult()
{
// create project
string requestCreateProjectUri = OpenApiUri + string.Format(CreateProjectUri, "xml");
HttpWebResponse responseCreateProject =
(HttpWebResponse)
_CallPostApi(requestCreateProjectUri, typeof(NewProjectItem), _GetProjectItem("TestGetRunSummaryResultAPI"));
int newProjectId = DeserializeHttpWebResponse(responseCreateProject);
projectListToBeDeleted.Add(newProjectId);
//Create a Base Run
string requestCreateBaseRunUri = OpenApiUri + string.Format(CreateBaseRunUri, "xml");
HttpWebResponse responseCreateBaseRun =
(HttpWebResponse)
_CallPostApi(requestCreateBaseRunUri, typeof(NewRunItem), _GetNewRunItem(newProjectId));
int newRunId = DeserializeHttpWebResponse(responseCreateBaseRun);
string requestGetRunStatusUri = OpenApiUri + string.Format(GetRunStatus, newRunId, 0, "json");
int percentStatus = 0;
while (percentStatus < 100)
{
HttpWebResponse response = (HttpWebResponse)_CallGetApi(requestGetRunStatusUri);
Stream responseStream = response.GetResponseStream();
StreamReader reader = new StreamReader(responseStream);
string result = reader.ReadToEnd();
RunStatus runStatus = DataContractJsonDeserialize<RunStatus>(result);
percentStatus = runStatus.StatusPercentDone;
MessageBox.Show(String.Format("{0}% - {1}", percentStatus, runStatus.DetailedStatus));
}
string requestGetRunSummaryResultsUri = OpenApiUri +
string.Format(GetRunSummaryResultsUri, newRunId, 0, "json");
HttpWebResponse response2 = (HttpWebResponse)_CallGetApi(requestGetRunSummaryResultsUri);
Stream responseStream2 = response2.GetResponseStream();
StreamReader reader2 = new StreamReader(responseStream2);
string resultSummary = reader2.ReadToEnd();
RunResultSummary runResultSummary = DataContractJsonDeserialize<RunResultSummary>(resultSummary);
MessageBox.Show("Building Type: " + runResultSummary.BuildingType);
//Console.WriteLine("Summary run result for: " + runResultSummary.Runtitle);
//Console.WriteLine("Location: " + runResultSummary.Location);
//Console.WriteLine("Building Type: " + runResultSummary.BuildingType);
//Console.WriteLine("Project Template: " + runResultSummary.ProjectTemplateApplied);
//Console.WriteLine(String.Format("Floor Area: {0} {1}", runResultSummary.FloorArea.Value, runResultSummary.FloorArea.Units));
//Console.WriteLine(String.Format("Electriciyt Cost: {0} {1}", runResultSummary.ElectricCost.Value, runResultSummary.ElectricCost.Units));
//Console.WriteLine(String.Format("Annual Energy Cost: {0} ", runResultSummary.RunEnergyCarbonCostSummary.AnnualEnergyCost));
//Console.WriteLine(String.Format("Lifecycle Cost: {0} ", runResultSummary.RunEnergyCarbonCostSummary.LifecycleCost));
//Console.WriteLine(String.Format("Annual CO2 Emissions Electric: {0} {1}", runResultSummary.RunEnergyCarbonCostSummary.AnnualCO2EmissionsElectric.Value, runResultSummary.RunEnergyCarbonCostSummary.AnnualCO2EmissionsElectric.Units));
//Console.WriteLine(String.Format("Annual CO2 Emissions On site Fuel: {0} {1}", runResultSummary.RunEnergyCarbonCostSummary.AnnualCO2EmissionsOnsiteFuel.Value, runResultSummary.RunEnergyCarbonCostSummary.AnnualCO2EmissionsOnsiteFuel.Units));
//Console.WriteLine(String.Format("Annual CO2 Emissions Large SUV Equivalent: {0} {1}", runResultSummary.RunEnergyCarbonCostSummary.AnnualCO2EmissionsLargeSUVEquivalent.Value, runResultSummary.RunEnergyCarbonCostSummary.AnnualCO2EmissionsLargeSUVEquivalent.Units));
//Assert.AreEqual(runResultSummary.Runtitle, "box model");
}
答案 0 :(得分:0)
你有几个选择:
1.重构代码,使您的方法不是静态的。这可能不是一个糟糕的选择,因为无论如何静态通常都是构建代码的坏方法。
2.创建一个类似
的静态TextBoxstatic Textbox myTextBox;
然后在表单加载时将其设置为文本框,并使用它代替Console.WriteLine()
3.在TextBox中作为参数使用
public static void TestGetRunSummaryResult(TextBox y)
{
t.Text = "whatever";
}
4.使用回调方法
如果您正在使用MultiThreading,那么也不要忘记使用TextBox.Invoke()。 ( - :