کادر محاورهای بازشو راهی عالی برای دریافت سریع ورودی مورد نیاز از کاربر برنامه شما است. با نحوه ایجاد یکی در برنامه Windows Forms آشنا شوید.
برای برنامه های دسکتاپ معمول است که از جعبه های محاوره ای هنگام درخواست اطلاعات از کاربر استفاده کنند. میتوانید با نمایش پنجرهای جدید، کادرهای محاورهای ورودی در یک برنامه Windows Forms ایجاد کنید.
همچنین می توانید عناصر UI را به پنجره گفتگوی جدید اضافه کنید. اینها شامل پیامها، جعبههای متنی و دکمههای «تأیید» و «لغو» است. هنگامی که کاربر اطلاعاتی را در کادر ورودی وارد می کند، می توانید نتیجه را ذخیره کرده و در قسمت های دیگر برنامه از آن استفاده کنید.
نحوه ایجاد یک تابع روی کلیک برای فعال کردن کادر گفتگوی ورودی
کادر محاوره ای نباید همیشه قابل مشاهده باشد. میتوانید کادر محاورهای را فعال کنید تا زمانی که کاربر یک عمل را انجام میدهد، مانند کلیک کردن روی دکمه، نشان داده شود. همچنین میتوانید درباره سایر رویدادهای Windows Forms که میتوانید در برنامه Windows Forms استفاده کنید، اطلاعات بیشتری کسب کنید.
یک دکمه به بوم اضافه کنید و عملکردی ایجاد کنید که با کلیک کاربر روی دکمه اجرا شود.
- یک برنامه Windows Forms جدید در ویژوال استودیو ایجاد کنید.
- در جعبه ابزار، یک دکمه کنترل رابط کاربری را جستجو کنید.
- روی بوم کلیک کنید و یک دکمه را بکشید.
- در پنجره خصوصیات، ویژگی های دکمه را به مقادیر جدید زیر تغییر دهید: نام ویژگی، مقدار جدید، نام، دکمه اندازه 400، 100 متن باز کردن گفتگوی ورودی
- در جعبه ابزار، یک برچسب را کلیک کرده و روی بوم بکشید. برچسب را در سمت راست دکمه قرار دهید.
- در پنجره خواص، ویژگی های برچسب را به مقادیر زیر تغییر دهید: نام ویژگی، مقدار جدید نام، labelResponseInput Visible False
- روی دکمه جدید Input Dialog دوبار کلیک کنید. این یک تابع روی کلیک را در فایل CS پشت کد برای form.private void dialogButton_Click(فرستنده شی، EventArgs e) ایجاد می کند{ // کد در اینجا زمانی که کاربر روی دکمه کلیک می کند فعال می شود // نمایش داده می شود کادر محاوره ای ورودی}
private void dialogButton_Click(object sender, EventArgs e)
{
// The code here will trigger when the user clicks on the button
// It will display the input dialog box
}
نحوه ایجاد کادر گفتگوی ورودی
کادر محاوره ای را در داخل یک تابع جدید ایجاد کنید. این تابع به صورت برنامهریزی یک فرم جدید ایجاد میکند و عناصر رابط کاربری را به آن اضافه میکند، از جمله یک کادر متنی با دکمههای “Ok” و “Cancel”.
- در تابع dialogButton_Click() یک تابع جدید ایجاد کنید که کادر گفتگوی ورودی را ایجاد می کند. پارامتر “عنوان” در گوشه سمت چپ بالای پنجره نشان داده می شود. مقدار “promptText” به کاربر نمایش داده می شود. پارامتر “value” یک پارامتر out است و مقداری را که کاربر در کادر ورودی وارد کرده است برمیگرداند.public static DialogResult InputBox(عنوان رشته، رشته promptText، مقدار رشته ref){}
- در داخل تابع InputBox()، عناصر UI را ایجاد کنید که در فرم نمایش داده می شوند. Form form = new Form();Label label = new Label();TextBox textBox = new TextBox();Button buttonOk = new Button(); دکمه دکمه لغو = new Button();
- عنوان فرم را اضافه کنید که در گوشه سمت چپ بالا نمایش داده می شود. همچنین پیام اصلی را که به کاربر نمایش داده می شود، در بالای کادر ورودی اضافه کنید.form.Text = title;label.Text = promptText;
- برای دکمه های “Ok” و “Cancel” مقادیر اضافه کنید. ویژگی text حاوی متنی است که در بالای هر دکمه نشان داده می شود. ویژگی DialogResult شامل نوع نتیجه ای است که دکمه نشان می دهد. میتوانید اطلاعات بیشتری درباره DialogResult در اسناد رسمی Microsoft بخوانید.buttonOk.Text = “OK”;buttonCancel.Text = “Cancel”;buttonOk.DialogResult = DialogResult.OK;buttonCancel.DialogResult = DialogResult.Cancel;
- از متد SetBounds() برای تنظیم موقعیتهای x و y برچسب، جعبه متن و دکمههای روی فرم استفاده کنید. همچنین می توانید عرض و ارتفاع هر عنصر را مشخص کنید.label.SetBounds(36, 36, 372, 13);textBox.SetBounds(36, 86, 700, 20);buttonOk.SetBounds(228, 160, 160, 60ttonCancel); SetBounds(400, 160, 160, 60);
- برخی از خصوصیات را برای خود پنجره گفتگو پیکربندی کنید. این ویژگی ها اندازه فرم، مرزها و موقعیت شروع را تنظیم می کنند. همچنین توانایی کوچک کردن یا به حداکثر رساندن پنجره یا تغییر اندازه برچسب را در صورت لزوم کنترل می کند.label.AutoSize = true;form.ClientSize = new Size(796, 307);form.FormBorderStyle = FormBorderStyle.FixedDialog;form.StartStartPosition =Form. .CenterScreen;form.MinimizeBox = false;form.MaximizeBox = false;
- عناصر رابط کاربری را به فرم جدید اضافه کنید و دکمههای پذیرش و لغو فرم را روی اشیاء دکمهای که قبلاً ایجاد شدهاند تنظیم کنید.form.Controls.AddRange(new Control[] { label, textBox, buttonOk, buttonCancel });form.AcceptButton = buttonOk ;form.CancelButton = دکمه لغو;
- پنجره گفتگوی تازه ایجاد شده را به کاربر نمایش دهید.DialogResult dialogResult = form.ShowDialog();
- مقداری را که کاربر وارد کرده در جعبه متن ذخیره کنید. بر اساس دکمهای که کاربر روی آن کلیک میکند، نتیجه فرم را برگردانید، که «تأیید» یا «لغو» خواهد بود.value = textBox.Text;return dialogResult;
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;
buttonOk.Text = "OK";
buttonCancel.Text = "Cancel";
buttonOk.DialogResult = DialogResult.OK;
buttonCancel.DialogResult = DialogResult.Cancel;
label.SetBounds(36, 36, 372, 13);
textBox.SetBounds(36, 86, 700, 20);
buttonOk.SetBounds(228, 160, 160, 60);
buttonCancel.SetBounds(400, 160, 160, 60);
label.AutoSize = true;
form.ClientSize = new Size(796, 307);
form.FormBorderStyle = FormBorderStyle.FixedDialog;
form.StartPosition = FormStartPosition.CenterScreen;
form.MinimizeBox = false;
form.MaximizeBox = false;
form.Controls.AddRange(new Control[] { label, textBox, buttonOk, buttonCancel });
form.AcceptButton = buttonOk;
form.CancelButton = buttonCancel;
DialogResult dialogResult = form.ShowDialog();
value = textBox.Text;
return dialogResult;
نحوه استفاده از کادر گفتگوی ورودی
برای استفاده از کادر محاوره ای ورودی، تابع InputBox() را در تابع dialogButton_Click() فراخوانی کنید. هنگامی که کاربر بر روی دکمه “Open Input Dialog” کلیک می کند، کادر محاوره ای نمایش داده می شود.
- در تابع dialogButton_Click() یک متغیر برای ذخیره مقداری که کاربر در کادر متن وارد می کند ایجاد کنید. این مقدار از “value” out parameter.string value = “”;
- با فراخوانی تابع InputBox() کادر محاوره ای را نمایش دهید. بررسی کنید که آیا کاربر روی دکمه “Ok” کلیک می کند یا خیر، و اگر چنین است، متنی را روی صفحه اضافه کنید تا پاسخ به user.if نمایش داده شود (InputBox(“Dialog Box”، “What is your name?”، مقدار ref ) == DialogResult.OK){ labelResponseInput.Visible = true; labelResponseInput.Text = “نام شما: ” + مقدار;}
string value = "";
if (InputBox("Dialog Box", "What is your name?", ref value) == DialogResult.OK)
{
labelResponseInput.Visible = true;
labelResponseInput.Text = "Your name: " + value;
}
نحوه مشاهده پاپ آپ دیالوگ ورودی
برنامه را اجرا کنید و کادر محاوره ای را فعال کنید.
- روی دکمه سبز رنگ play در بالای پنجره ویژوال استودیو کلیک کنید.
- روی دکمه Open Input Dialog کلیک کنید تا کادر محاوره ای نمایش داده شود.
- یک نام را در کادر متن وارد کنید و روی دکمه OK کلیک کنید. کادر محاوره ای بسته می شود و نتایج وارد شده در کادر متنی را نمایش می دهد.
- دوباره روی دکمه Open Input Dialog کلیک کنید تا کادر محاوره ای دوباره باز شود.
- روی دکمه Cancel کلیک کنید تا کادر محاوره ای بسته شود. با این کار کادر محاورهای بدون انجام هیچ کاری یا بهروزرسانی رابط کاربری لغو میشود.
افزودن محتوا و عناصر رابط کاربری به برنامه Windows Forms
میتوانید جعبههای محاورهای ورودی را در یک برنامه Windows Forms ایجاد کنید و در صورت وقوع رویدادهای خاص، آنها را به کاربر نمایش دهید. با ایجاد یک فرم جدید می توانید یک پنجره محاوره ای جدید ایجاد کنید. سپس میتوانید عناصر رابط کاربری جدیدی مانند برچسبها، جعبههای متن یا دکمهها را به آن اضافه کنید.
هنگامی که کاربر اطلاعات مورد نیاز خود را وارد کرد، می توانید کادر ورودی را ببندید و اطلاعاتی را که وارد کرده است ذخیره کنید.
اگر میخواهید محتوای بیشتری به رابط کاربری یا کادر محاورهای خود اضافه کنید، میتوانید نحوه افزودن سایر عناصر رابط کاربری را بررسی کنید. این شامل عناصری مانند اشکال یا تصاویر است.