Вопрос по c#, .net – Окно сообщения с полем ввода [дубликат]

55

This question already has an answer here:

What is the C# version of VB.net's InputDialog? 11 answers

Можно ли показать (всплывающее) окно сообщения с полем ввода в нем, возможно, текстовое поле? Кто-то на языке или в структуре?

Ваш Ответ

2   ответа
48

сделав форму и отобразив ее с помощью ShowDialogBox ....

Form.ShowDialog Method - Показывает форму в виде модального диалогового окна.

Пример

public void ShowMyDialogBox()
{
   Form2 testDialog = new Form2();

   // Show testDialog as a modal dialog and determine if DialogResult = OK.
   if (testDialog.ShowDialog(this) == DialogResult.OK)
   {
      // Read the contents of testDialog's TextBox.
      this.txtResult.Text = testDialog.TextBox1.Text;
   }
   else
   {
      this.txtResult.Text = "Cancelled";
   }
   testDialog.Dispose();
}
Мне это нравится, потому что это не требует использования библиотеки VisualBasic и дает более детальный контроль над формой и внешним видом диалогового окна. Одно замечание: Обязательно сделайте доступ к текстовому полю (TextBox1 в примере) общедоступным в файле кода для диалога. Steve Ferguson
Обратите внимание, что вы должны установить DialogResult самостоятельно! Видетьэтот вопро styfle
Мне очень нравится это решение против добавления всей библиотеки Microsoft.VisualBasic.dll только для использования одной простой функции. Добавляет вес к размеру распределения и не практично. Это должен быть ответ. Leo Gurdian
Я не знаю, в чем проблема с добавлением библиотеки DLL VisualBasic. Ведь это часть сетевого фреймворка, поэтому он уже установлен, или я что-то упустил? magallanes
80

в C # нет ничего подобного, вам придется создать его самостоятельно. Но вы можете попробовать ссылаться наMicrosoft.VisualBasic.dll.

Затем используйте код ниже.

Microsoft.VisualBasic.Interaction.InputBox("Question?","Title","Default Text");

Или добавивusingиректива @, позволяющая использовать более короткий синтаксис в вашем коде (что я лично предпочел бы).

using Microsoft.VisualBasic;
...
Interaction.InputBox("Question?","Title","Default Text");

Или ты можешь делать то, что предлагает Пранай Рана, я бы тоже это сделал ...

Обновить? А если не можешь - смени работу. Я чувствую к тебе, брат. У меня было задание один раз. Мы сидели на чем-то. Мне казалось, что мы начнем заново открывать огонь и руль в ближайшее время ... Konrad Viltersten
Я использую .net 2 и C # 2.0. Не может найти .dll. Любые идеи Sunscreen
Не работает на .net 4.5 Ave
@ ardaozkal это так, вы уверены, что ссылались на Microsoft.VisualBasic? animaonline

Похожие вопросы