c# - 从应用程序中的任何位置访问文本框

标签 c# winforms textbox

如何在 winforms 应用程序中创建一个文本框,以接受来自应用程序中任何位置的新文本行?

我有一个包含文本框的主窗体。我想通过另一个类中的方法直接将文本添加到框中。

更新

我在我的主表单中尝试了这个:

public void Output(String value)
    {
        if (txtOutput.Text.Length > 0)
        {
            txtOutput.AppendText(Environment.NewLine);
        }
        txtOutput.AppendText(value);
    }

但我无法从其他类调用输出。我是 C# 新手,所以也许我遗漏了一些明显的东西。

问候,米尔。

PS 是的,我知道这是糟糕的设计,但目前这似乎是实现我想要的效果的最佳方式。文本框的功能类似于控制台。

最佳答案

您需要将 TextBoxText 属性公开为表单上的 string 属性。例如...

public string TextBoxText
{
    get { return textBoxName.Text; }
    set { textBoxName.Text = value; }
}

编辑

阅读问题编辑后,您的问题是您需要引用表单的特定实例,无论您尝试在何处执行该代码。您可以传递一个引用(这是更好的选择),也可以使用一些有味道的代码并拥有一个引用表单的一个实例的静态属性。类似...

public partial class MyForm : Form
{
    private static MyForm instance;

    public static MyForm Instance
    {
        get { return instance; }
    }

    public MyForm() : base()
    {
        InitializeComponent();

        // ....

        instance = this;
    }
}

使用这种方法,您可以调用 MyForm.Instance.Output("test");

关于c# - 从应用程序中的任何位置访问文本框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/829698/

相关文章:

c# - 无法访问正在使用的文件

javascript - 如何使用jquery获取下拉值并在文本框中显示?

c# - 在 WPF 中打开 ContextMenu 时保留 DataGrid IsSelectionActive?

c# - 将 TransactionScope 与 Entity Framework 6 结合使用

c# - 当 DialogResult 为 No 时防止 Form 关闭

c# - 分层 winform 复选框

c# - 自定义文本框自动完成

c# - .NET 4.5 的奇怪文本框问题 - 不允许 '.'

c# - C# 的 LINEST 函数模拟

C#无法添加MySQL数据源