c#中的自定义对话框控件

时间:2011-02-16 22:36:23

标签: c# dialog controls

我有一个问题,希望你们中的一些人可以回答,我还没有找到任何方法在谷歌或这里做到这一点。

我想要的: - 一个自定义控件,就像输入框一样。 (但它必须是一个可以添加到表单的winform控件。不是表单。) - 它必须能够从其文本框中获取值并将其发送到调用它的函数中的父级。

以下是我想要的方式:

string str = MyBox.GetString("control title");

有人可以帮忙吗?

我不知道这是否可能在c#中发生。我无法理解,但如果有人可以请回答!

2 个答案:

答案 0 :(得分:2)

你想要这样的东西

public partial class MyBox : Form
{
    public MyBox()
    {
        InitializeComponent();
    }

    public string ResultText { get; set; }

    public static string GetString(string title)
    {
        var box = new MyBox {Text = title};

        if (box.ShowDialog() == DialogResult.OK)
        {
            return box.ResultText;
        }

        return string.Empty;
    }

    private void okButton_Click(object sender, EventArgs e)
    {
        this.ResultText = txtUserInput.Text;
        this.DialogResult = DialogResult.OK;
    }
}

MyBox将是一个带有TextBox的表单 - txtUserInput以及一个链接到okButton_Click事件的okay按钮。

你可以通过以下其他形式拨打电话:

string userInput = MyBox.GetString("Title for MyBox");

答案 1 :(得分:0)

如果您希望该框位于表单上,您可以使用常规TextBox来获取inupt。也许可以在GroupBox中单独给它一个“标题”,添加一个描述标签。

最后,最重要的是,在GroupBox中添加一个“更新”按钮。在此按钮的Click处理程序中,您可以使用string str = textbox.Text检索文本框的值。