将全局变量传递给类



我正试图将一个字符串传递给一个公共类(customPanel(。

但是"teststring"从未被传递并写入testfile.txt
testfile.txt写入一个空字符串。

private void button1_Click(object sender, EventArgs e)
{
customPanel cp = new customPanel();
cp.getinfo = "teststring";
}
public class customPanel : System.Windows.Forms.Panel
{
public String getinfo { get; set; }
public customPanel() { InitializeComponent(); }
private void InitializeComponent()
{
String gi = getinfo;
System.IO.FileStream fs = new System.IO.FileStream("C:/folder1/testfile.txt", System.IO.FileMode.Append, System.IO.FileAccess.Write, System.IO.FileShare.ReadWrite);
System.IO.StreamWriter writer = new System.IO.StreamWriter(fs);
writer.WriteLine(gi); writer.Close(); fs.Close();
}
}

您遇到的问题是由于代码的执行顺序造成的。

基本上,当您调用new customPanel()时,将调用构造函数方法controlPanel()。因此,当您设置getInfo值时,已经调用了InitializeComponent()方法。

在不了解上下文的情况下,简单的解决方案是将字符串作为参数传递给构造函数。基本上切换controlPanel()以接收string variableName作为参数,就像这个controlPanel(string variableName)一样,然后在调用InitializeComponent();之前用this.getInfo = variableName;设置属性的值。

如果这有帮助,请告诉我!

小心。

相关内容

  • 没有找到相关文章

最新更新