Пользовательское диалоговое окно управления в C # - PullRequest
1 голос
/ 17 февраля 2011

У меня есть вопрос, я надеюсь, что некоторые из вас смогут ответить, я не нашел никаких способов сделать это в Google или здесь.

Что я хочу: - Пользовательский элемент управления, который функционирует простокак поле ввода.(Но это должен быть элемент управления winform, который можно добавить в форму. Не в форму.) - Он должен быть в состоянии извлечь значение из его текстового поля и отправить его родителю в функции, в которой он был вызван.

Вот как я хочу это назвать:

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

Кто-нибудь может помочь?

Я не знаю, возможно ли это в c #.Я не мог понять это, но если кто-то может ответить, пожалуйста!

Ответы [ 2 ]

2 голосов
/ 17 февраля 2011

Вы хотите что-то вроде этого

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.

И вы можетесовершать звонки из других форм, как это:

string userInput = MyBox.GetString("Title for MyBox");
0 голосов
/ 17 февраля 2011

Если вы хотите, чтобы поле находилось в форме, вы можете просто использовать обычный TextBox для получения inupt.Возможно, добавьте его в GroupBox, чтобы получить «заголовок», добавьте метку описания.

Наконец, и самое главное, добавьте кнопку «Обновить» в GroupBox.Внутри обработчика Click этой кнопки вы можете получить значение текстового поля с помощью string str = textbox.Text.

...