类的代码如下
class Class1 { public void showMsg() { Form1 ff = new Form1(); ff.textBox1.Text = "ddd"; } }
窗体代码如下
private void button1_Click(object sender, EventArgs e) { Class1 cc = new Class1(); cc.showMsg(); }
本人想在class1类里面给窗体的textbox1赋值,上面的方法行不通,不知道问题出在哪里?
(textbox1的modifier属性已经设为了public)
解决方案
15
showMsg 并不应该是 Class1 的职责。以后你会越来明白这个原因。
Class1对象实例只是进行数据处理,它既然被 UI 组件所使用,就应该组为独立服务,不依赖于 UI 组件。例如它可以有一些属性
Class1对象实例只是进行数据处理,它既然被 UI 组件所使用,就应该组为独立服务,不依赖于 UI 组件。例如它可以有一些属性
public class Class1 { public string Message{get; set;} }
可以被 UI 组件访问,而显示的职责可以由组件完成,例如
private void button1_Click(object sender, EventArgs e) { Class1 cc = new Class1(); this.textBox1.text = cc.Message; }
假设 窗体不读取 Mesage 属性,那就谁也不去显示。反正不是 cc 的职责。原因是既然你仍在随后编写的 Class1 中可以乱设计职责,那么就一定可以在窗体中设计。
过度设计,滥用 class,不是好事。
5
有个办法,不过不推荐就是了
((Form1)Application.OpenForms["Form1的Names属性"]).textBox1.Text = "ddd";