PDA

View Full Version : چطور در سی شارپ یک inputbox داشته باشم...؟؟



ateryad
سه شنبه 12 دی 1391, 00:12 صبح
با سلام دوستان عزیز
می دونم که در سی شارپ، inputbox به صورت پیش فرض وجود نداره.
ولی من نیاز به یک inputbox دارم تا داخل برنامه خودم استفاده کنم.

چندین کد دیدم که برای ایجاد inputbox بود ولی کمی طولانی بود.
ممنون میشم تا دوستان کدها و نظرات خودشون رو ارسال کنند...!!!!

group45
سه شنبه 12 دی 1391, 00:31 صبح
با سلام
کاری نداره.یه فرم طراحی کنید و یه تکیت باکس بش اضافه کنید و خلاصه کاری کنید که کارش اون چیزی باشه که مد نظرتونه.
این فرم رو یه جا ذخیره کنید و واسه هر برنامه ای که نیاز داشتید به برنامه اضافش کنید.

asgharjoon2
سه شنبه 12 دی 1391, 11:29 صبح
داخل یه کلاس بنویس و ازش استفاده کن


public static DialogResult InputBox(string title, string promptText,int hi, 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;
}

AmirGhasemi
سه شنبه 12 دی 1391, 12:06 عصر
سلام
ببخشيد inputbox‌چيه؟؟؟؟؟؟؟؟؟؟ اگه منظورت محلي براي وارد كردن داده است كه خب textbox راحت ترين راه براي گرفتن اطلاعات از كاربره

asgharjoon2
سه شنبه 12 دی 1391, 12:16 عصر
بعضی وقت ها هست فقط میخوای یه سری اطلاعات از کاربر بگیری نمیخوای یه فورم الکی اضافه کنی. اونجا به کار میاد. مثلا من توی یه برنامه هام نیاز داشتم کاربر محل برنامه رو مشخص کنه برای سوال پرسیدن و گرفتن محل نمایش برنامه از input box استفاده کردم.

فرید نجفلو
سه شنبه 12 دی 1391, 12:57 عصر
سلام
اگه می خواین کلا کاری انجام ندید
به Microsoft.VisualBasic رفرنس بدید
بنویسید:
Microsoft.VisualBasic.Interaction.InputBox("Heloo!", "This Is Test");

------------------------------------
الانه که یه تعداد بریزن سرم که اینجا تالار سی شارپه و ما داریم با سی شارپ برنامه نویسی می کنیم و ... !!!

اولا که شما در اصل دارید با دات نت برنامه می نویسید این جزوی از دات نته
دوما شما فرض کن این کد رو با امکانات وی بی نوشتید آیا واسه کاربر شما فرقی می کنه که این پنجره با کدوم امکانات باز شده ، البته که فقط واسه شما فرق می کنه که انرژی که می خواید واسه این کد بزارید صرف هدف اصلی می کنید (البته اگه وقت داشته باشید نوع سفارشی هم خوبه)
اگه راضی نیستید می تونید برید از صفر بسازید (اونم اگه توش باگی چیزی نبود!)

البته این حرفا فقط واسه این کد نیست ، نمی دونم چرا ما به خاطر یه سری خرافات (مقایسه #C و VB.Net) خودمون رو از یک سری چیزا محروم می کنیم و یا به سر و کله هم می پریم

ateryad
سه شنبه 12 دی 1391, 13:57 عصر
یعنی اگه فقط این یک خط کد رو وارد برنامه کنم درست میشه...؟

فرید نجفلو
سه شنبه 12 دی 1391, 15:14 عصر
بله بعد از دادن رفرنس همون یه خط کافیه (البته برنامه نویسان VB عادت دارن مستقیما نام تابع رو صدا بزنن ولی تو سی شارپ یکم بلندتره)
مقدار برگشتی همون چیزیه که کاربر وارد کرده
اگه دکمه کنسل زده بشه یه رشته خالی ("") برگشت داده میشه
پارامترها:
اولی: متن داخل کادر (پیام)
دومی: عنوان پنجره
سوم و چهارمی:مختصات (گوشه بالا و چپ) فرم براای نمایش

ateryad
سه شنبه 12 دی 1391, 15:22 عصر
من اینتور استفاده کردم، ولی Interaction رو ارور میده...!!

jj=convert.toint32(Microsoft.VisualBasic.Interacti on.InputBox("input", "This Is Test");)

ateryad
سه شنبه 12 دی 1391, 15:24 عصر
چطور رفرنس بدم به VB

فرید نجفلو
سه شنبه 12 دی 1391, 15:58 عصر
چطور رفرنس بدم به VB

تو Solution Explorer (برگه واقع در سمت راست پنجره) رو نام پروژه کلیک راست و Add Refrence رو بزنید
برگه .Net رو باز و رفرنس مورد نظرتون رو انتخاب کنید (بعد از باز کزدن برگه کمی صبر کنید تا لیست همه رفرنس ها لود بشن)