Thursday, October 9, 2008

InputBox in C#

This example demonstrates how to show an InputBox in C# using simple static method.

InputBox

The following code shows the usage of an InputBox static method that simulates InputBox method known from VB and VB.NET. Our InputBox method is defined in a custom class Tmp.

string value = "Document 1";
if (Tmp.InputBox("New document", "New document name:", ref value) == DialogResult.OK)
{
myDocument.Name = value;
}

The method's imple­mentation is in the following code. The method takes three paramaters: a dialog title, a prompt text and the default textbox value. It returns a DialogResult to detect wheather the OK or the Cancel button has been clicked. The input value can be obtained from the input/output parameter value.
using System.Windows.Forms;
using System.Drawing;

public static DialogResult InputBox(string title, string promptText, ref string value)
{
Form form = new Form();
Label label = new Label();
TextBox textBox = new TextBox();
Button buttonOk = new Button();
Button buttonCancel = new Button();

form.Text = title;
label.Text = promptText;
textBox.Text = value;

buttonOk.Text = "OK";
buttonCancel.Text = "Cancel";
buttonOk.DialogResult = DialogResult.OK;
buttonCancel.DialogResult = DialogResult.Cancel;

label.SetBounds(9, 20, 372, 13);
textBox.SetBounds(12, 36, 372, 20);
buttonOk.SetBounds(228, 72, 75, 23);
buttonCancel.SetBounds(309, 72, 75, 23);

label.AutoSize = true;
textBox.Anchor = textBox.Anchor | AnchorStyles.Right;
buttonOk.Anchor = AnchorStyles.Bottom | AnchorStyles.Right;
buttonCancel.Anchor = AnchorStyles.Bottom | AnchorStyles.Right;

form.ClientSize = new Size(396, 107);
form.Controls.AddRange(new Control[] { label, textBox, buttonOk, buttonCancel });
form.ClientSize = new Size(Math.Max(300, label.Right + 10), form.ClientSize.Height);
form.FormBorderStyle = FormBorderStyle.FixedDialog;
form.StartPosition = FormStartPosition.CenterScreen;
form.MinimizeBox = false;
form.MaximizeBox = false;
form.AcceptButton = buttonOk;
form.CancelButton = buttonCancel;

DialogResult dialogResult = form.ShowDialog();
value = textBox.Text;
return dialogResult;
}
resource from http://www.csharp-examples.net/

1 comments:

Khishgee said...

C# samples-г монгол хэл дээр дэлгэрэнгүй энгийн үгээр тайлбарлавал хүмүүст илүү хүрэх болов уу. Анхлан суралцагчдад мэргэжлийн хэллэгтэй англи тайлбар ойлгоход илүү хүндрэлтэй байна.
Иймэрхүү C# Lesson-г Google-дэхэд л хангалттай олдоно.