【发布时间】:2023-04-04 05:50:01
【问题描述】:
我想访问另一个类的文本框。
应该从类Log 访问Textbox1,使用void AddLog。
所以,在我的应用程序的任何地方,我想使用Log.AddLog("...."),以便在日志窗口中添加一些文本(textbox1),我为此编写了一个函数(它是 AddLog):
public void AddLog(string s)
{
new Form1().richTextBox1.Text += Environment.NewLine + s;
}
我将 textbox1 的修饰符设置为 public 以便从 AddLog 中调用它。当我调用这个函数时,什么也没有发生,textbox1 中不会显示任何内容......
我已经搜索过了,但没有找到真正帮助我的。
【问题讨论】:
-
new operator - "用于创建对象"
-
新表单确实有它的
richTextBox1文本正确附加了字符串s的内容,关于在类之间传递对象有很多重复的问题,我觉得很难想到没有任何帮助..您搜索了什么,您尝试了什么没有用? -
我的解决方案与您已经找到的解决方案完全相同,到目前为止您尝试了哪些没有奏效的方法?
-
我编辑了您的问题以删除我的反对意见,但请阅读How to Ask。我建议你尝试自己解决你的问题,如果你仍然卡住,然后再回来提出一个更详细的问题(提示:传递参考)
-
@Sayse 的第一条评论 有帮助的原因是您的方法创建了一个
Form1的新实例。但是一旦方法退出,该实例就不再可访问并被处置。您的总体思路是正确的,但您需要了解范围。两个例子可以找到here和this answer的前半部分。