Диалог ввода C # как функция - PullRequest
0 голосов
/ 21 мая 2010

В C # я хотел бы создать функцию (метод), которая имеет следующее поведение:

  1. При вызове создать и показать форму.
  2. Подождите, пока пользователь не введет или не выберет значение в форме.
  3. Вернуть выбранное значение.

Существует ли краткий, читабельный способ реализации этой функции?

Ответы [ 6 ]

4 голосов
/ 21 мая 2010

Создайте форму, которую вы хотите показать

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

    private void button1_Click(object sender, EventArgs e)
    {
        DialogResult = DialogResult.OK;
        Close();
    }

    public string SomeValue { get { return textBox1.Text; } }
}

...

private string GetSomeInput()
{
    SomeForm f = new SomeForm();
    if (f.ShowDialog() == DialogResult.OK)
        return f.SomeValue;
    return null;
}
3 голосов
/ 21 мая 2010

Просто позвоните Microsoft.VisualBasic.InputBox()

1 голос
/ 21 мая 2010

Если вы ищете функциональность диалога, WPF и WinForms обе поддерживают это. Вы просто вызываете ShowDialog() в отображаемом окне / форме. Это блокирующий вызов, поэтому, пока вы не закроете показанное диалоговое окно, вы не вернете обработку в вызывающее окно.

Чтобы вернуть значения из этого вызова, просто создайте свойства в форме / окне, а затем проверьте их после ShowDialog ().

0 голосов
/ 21 мая 2010

Создайте свою форму следующим образом:

Form myForm = new Form();
var result = myForm.ShowDialog();

У меня нет дизайнера winforms, но возвращаемое значение - это Enum, в котором написано, что нажал ok или отмену и т. Д.

Как только вы это знаете, вы можете просто прочитать выбранное значение.

string selectedValue = myForm.SelectedValueProperty;
0 голосов
/ 21 мая 2010

Создать форму. Добавьте некоторые свойства значений, которые вы хотите получить. Затем вызовите из главной формы новую форму как ShowDialog и, когда она вернется, получите значения из свойств.

0 голосов
/ 21 мая 2010

Функция должна возвращать тип ввода, который вы ищете, и должна делать что-то вроде ...

protected [InputType] ShowInputDialog()
{
    [InputWindowType] w = new [InputWindowType]();
    w.ShowDialog();
    return w.Input;  //Where input is a property that exposes what the user provided as input
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...