نمایش InputBox در #C

در این مقاله قصد داریم یک InputBox تقریبا سفارشی را در #C با استفاده از یک متد استاتیک شبیه سازی  نماییم طرح کلی به این صورت خواهد بود که شما عنوان ،متن پیغام را تعیین کرده و پنجره InputBox به کاربر نمایش داده می شود و مقدار وارد شده را از آن دریافت خواهیم کرد. شکل کلی آن به صورت زیر خواهد بود .

InputBox

ابتدا یک پروژه جدید windows Form ایجاد نمایید . یک کلاس به اسم InputBox به آن اضافه نمایید و یک متد استاتیک به اسم Show رو در آن به صورت زیر پیاده سازی کنید :

در متد زیر از کلاس Form یک نمونه ای ساخته و چهار نمونه از  کنترل های (Button,Textbox,Label) برای نمایش و گرفتن مقدار ورودی از کاربر را کاربر را ایجاد کرده و آنها را به شی Form ساخته شده اضافه می کنیم .

using System.Windows.Forms;
using System.Drawing;
 public class InputBox
    {
       public static  DialogResult Show(string Title,ref string Value,string Prompt)
       {
           //
           Form formObj = new Form();
           Label lblPrompt = new Label() { AutoSize=true};
           Button btnOk = new Button() { Text="OK",DialogResult=DialogResult.OK};
           Button btnCancel = new Button() { Text="Cancel",DialogResult=DialogResult.Cancel};
           TextBox txtInput = new TextBox();
           formObj.Text = Title;
           lblPrompt.Text = Prompt;
           
           // Set  bounds
           lblPrompt.SetBounds(9, 20, 372, 13);
           txtInput.SetBounds(12, 36, 372, 20);
           btnOk.SetBounds(228, 72, 75, 23);
           btnCancel.SetBounds(309, 72, 75, 23);
           lblPrompt.SetBounds(9, 20, 372, 13);
           txtInput.SetBounds(12, 36, 372, 20);
           btnOk.SetBounds(228, 72, 75, 23);
           btnCancel.SetBounds(309, 72, 75, 23);

           formObj.ClientSize = new Size(396, 107);
           // Add controls
           formObj.Controls.AddRange(new Control[]{txtInput,btnCancel,btnOk,lblPrompt});
           //Set Form attribute 
           formObj.StartPosition = FormStartPosition.CenterParent;
           formObj.FormBorderStyle = FormBorderStyle.FixedDialog;
           formObj.MaximizeBox = false;
           formObj.MinimizeBox = false;
           formObj.AcceptButton = btnOk;
           formObj.CancelButton = btnCancel;
           DialogResult drObj = formObj.ShowDialog();
           Value = txtInput.Text;
           return drObj;
       }
    }

 یک InputBox در حداقل ترین حالت نیازمند سه کنترل (textbox,Label,Title) می باشد که در ابتدای تابع از هر کدام از آنها یک نمونه ایجاد کرده ایم  و یک سری مشخصات و تنظیمات را هم برای هر کدام از آنها جهت نمایش بهتر اضافه کرده ایم .
یکی از پارامترها را به صورت ref تعیین شده است به این دلیل  چون مقدار ورودی کاربر برای ما مهم و مورد نیاز است پس مقدار وارد شده توسط کاربر را در متغییر مربوطه قرار می دهیم .[آدرس متغییر مربوطه را به تابع فرستاده ایم]
خروجی متد را از نوع DialogResualt تعیین کرده ایم به این دلیل که تشخصی دهیم کاربر کدام یک از دو دکمه Ok یا Cancel را کلیک کرده است .
و در پایان برای فراخوانی و نمایش InputBox به صورت زیر عمل خواهیم کرد :

InputBox.Show("Reset Password",ref  val, "Please Enter Your email");

و می توان چک کرد که کاربر کدام دکمه را کلیک کرده است :

 if (InputBox.Show("Reset Password", ref val, "Please Enter Your email") == DialogResult.OK) Email = val;

 

دانلود کدهای پروزه


توسط : عثمان رحیمی  1 ماه قبل ، سه شنبه 6 آبان 1393 ساعت 01:26  0  1985

نظر شما برای ما مهم است و به ما در بهبود سایت کمک میکند.


ارسال نظر
  • نام (اختیاری ) :
  • پست الکترونیک :
  • توضیحات :

مطالب مرتبط