尝试#2。
我正在尝试在两个类中调用函数。一种获取数据的函数,并在B类中调用函数B以通过Windows窗体应用程序显示数据。
//Class B containing function B
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace GUI_Server
{
public partial class ChatServer : Form
{
private delegate void EnableDelegate(bool enable);
private static ChatServer CHT = new ChatServer();
public ChatServer()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
ServerBackBone.test();
}
public static void TestConnectivity(string text)
{
CHT.TestLabel.Text = text;
}
}
} // Assume Class B
以下是A类和A函数
using System;
using System.Net;
using System.Net.Sockets;
using System.Text;
using System.Threading;
namespace GUI_Server
{
class ServerBackBone
{
private static ChatServer CHT = new ChatServer();
public static void test()
{
ChatServer.TestConnectivity("test");
}
}
}
所以,这里发生的是正在加载表单,调用A类中的静态函数来联系B类>功能B更新主窗口上的标签...问题在于用新文本更新标签。
单步执行代码表明所有功能都已成功调用&预期的文本传递给函数。
虽然按F5开始调试所述应用程序时,诊断工具会显示以下消息:
诊断工具意外失败
诊断中心输出显示:
响应状态代码不表示成功:401(未授权)。
常规输出显示:
线程0x20c0已退出,代码为0(0x0)。
线程0x1624已退出,代码为0(0x0)。
'GUI Server.vshost.exe'(CLR v4.0.30319:GUI Server.vshost.exe): 加载'c:\ users \ shaiya \ documents \ visual studio 2015 \ Projects \ GUI Server \ GUI Server \ bin \ Debug \ GUI Server.exe'。符号已加载。
线程0x20fc已退出,代码为0(0x0)。
线程0xae8已退出,代码为0(0x0)。
应用程序在这些消息显示后成功运行。单步执行现在显示错误,也不执行断点。标签不会在主控件中更新
全新项目。实际表单接口上的唯一元素是具有重命名为TestLabel的属性的标签。
this.TestLabel = new System.Windows.Forms.Label();
this.SuspendLayout();
//
// TestLabel
//
this.TestLabel.AutoSize = true;
this.TestLabel.Location = new System.Drawing.Point(43, 70);
this.TestLabel.Name = "TestLabel";
this.TestLabel.Size = new System.Drawing.Size(35, 13);
this.TestLabel.TabIndex = 0;
this.TestLabel.Text = "label1";
答案 0 :(得分:1)
我不确定this
中的Form1_Load
和CHT
中的TestConnectivity
是否是同一个对象。它们必须是,因为您正在尝试更新this
。