在另一个类的表单中写入文本框

时间:2012-02-05 12:48:18

标签: c# winforms

我需要在另一个类的主窗体的文本框中编写查询结果。实现这一目标的最佳和简单方法是什么?

2 个答案:

答案 0 :(得分:0)

使用类中的公共属性(或getter)来检索查询的输出。

答案 1 :(得分:0)

您的外部课程不应该对文本框有任何了解。它可能知道你的表单,以便在那里发送结果,但元素属于表单,不应公开(这就是所谓的封装)。

我建议你在表单上有一个有意义的方法,比如ShowListOfUsers(用户)或者你做的任何事情,适当地调用它以便可以在外部理解它。 然后在此方法中,您可以根据需要将结果放入控件(文本框)中。

我还建议您为表单提供一个包含此类行为方法的界面,并让您的窗口实现此界面,如:

public interface IOrderView
{
    void ShowOrderDiscount(result);
}

所以你的外部类只会知道界面,而不是窗口,文本框等。

现在您的查询组件非常简单:

public class SomeOperation
{
    private readonly IOrderView _view;
    public SomeOperation(IOrderView view)
    {
        _view = view;
    }

    public void DoSomething(parameters)
    {
        var result = GetMyComplicatedResult();
        _view.ShowResult(result);
    }
}

上面的代码并不理想(因为我不知道你的情况是什么),但这个想法就在那里。

祝你好运。