کنترل کادر متن(TextBox)
جلسات دوره
مهدی احمدی
از سال 1380 برنامه نویسی را شروع کرده و از سال 90 در این زمینه تدریس میکنم .با زبانهای سی پلاس پلاس ، سی ،پاسکال ،VB ، سی شارپ ،اسمبلی، جاوا و .... کار کرده و آنها را تدریس کرده ام.هم اکنون نیز مشغول تدریس در دانشگاه هستم و مدتی است با سایت درسمن همکاری میکنم مشاهده رزومه
از پنجره ToolBox بر روی گزینه TextBox دابل کلیک کنید تا یک کادر متن برای شما ساخته شود. کادر متنها برای دریافت متن از کاربر مورد استفاده قرار میگیرد. توجه داشته باشید متنی که کاربر درون کادر متن میویسد، در ویژگی Text کادر متن ذخیره میشود.
حال قصد داریم که با استفاده از دو کادر متن نام و نام خانوادگی کار بر را دریافد کرده و در رویداد کلیک یک دکمه آنها را نمایش دهیم. برای بهتر شدن کارمان میتوانیم در کنار هریک از کاردهای متن یک لیبل قرار دهیم و موضوع آن کادر متن را درون آن لیبل بنویسیم.
private void button1_Click(object sender, EventArgs e) //دکمه کلیک
{
MessageBox.Show("Hello "+textBox1.Text+" "+textBox2.Text+" !"); //خانوادگی نام و نا نمایش
}
حال قصد داریم یک ماشین حساب بسازیم که چهار عمل اصلی را انجام دهد. به وسیله دو کادر متن، دو عدد از کاربر دریافت کرده و در رویداد یکی از چهار دکمه جمع، تفریق، ضرب یا تقسیم حاصل آنها را درون یک کادر متن دیگر نمایش میدهیم.
private void button1_Click(object sender, EventArgs e) //جمع دکمه
{
int a, b;
a = Convert.ToInt32(textBox1.Text);
b = Convert.ToInt32(textBox2.Text);
textBox3.Text = (a + b).ToString(); //عدد دو جمع
}
private void button2_Click(object sender, EventArgs e) //تفریق دکمه
{
int a, b;
a = Convert.ToInt32(textBox1.Text);
b = Convert.ToInt32(textBox2.Text);
textBox3.Text = (a - b).ToString(); //عدد دو تفریق
}
private void button3_Click(object sender, EventArgs e) //ضرب دکمه
{
int a, b;
a = Convert.ToInt32(textBox1.Text);
b = Convert.ToInt32(textBox2.Text);
textBox3.Text = (a * b).ToString(); //عدد دو ضرب
}
private void button4_Click(object sender, EventArgs e) //تقسیم دکمه
{
int a, b;
a = Convert.ToInt32(textBox1.Text);
b = Convert.ToInt32(textBox2.Text);
textBox3.Text = (a / b).ToString(); //عدد دو تقسیم
}
private void button5_Click(object sender, EventArgs e) //خروج دکمه
{
Application.Exit();
}
ویژگیها
AutoCompleteCustomSource
یکی از ویژگیهای کادر متن AutoCompleteCustomSource است که ما میتوانیم با وارد کردن چند آیتم درون آن، همان آیتمها را در هنگام تایپ به کاربر پیشنهاد دهیم.
AutoCompleteSource
ویژگی AutoCompleteSource منبعی از ما دریافت میکند تا کلمات پیشنهادی را از آنجا بگیرد و ما با انتخاب گزینه (Collection) به او منبعی که خود در ویژگی AutoCompleteCustomSource ساختهایم را میدهیم.
AutoCompleteMode
در ویژگی AutoCompleteMode ما میتوانیم نهوه پیشنهاد کلمات را به کاربر مشخص کنیم.
PasswordChar
گاهی اوقات نیاز است که در هنگام پر کردن برخی از کادر متنها مانند رمزعبور، دادههای ورودی کاربر به صورت مخفیانه نمایش داده شود. اگر در مقابل ویژگی PasswordChar یک کاراکتر قرار دهیم، آن کاراکتر در هنگام تایپ کاربر به تعداد کاراکترهای ورودی نمایش داده میشود و اگر شخصی در کنار کاربر باشد رمز عبور او را نمیبیند.
CharacterCasing
با استفاده از ویژگی CharacterCasing میتوانیم همه کاراکترهای ورودی کاربر را به حروف بزرگ یا کوچک تبدیل کنیم.
MaxLength
در ویژگی MaxLength میتوانیم حداکثر کارکتری که کاربر میتواند وادر کند را مشخص کنیم.
MultiLine
در حالت عادی داده های کادر متن به صورت یک خط از کاربر دریافت میشود اما ممکن است ما برای دریافت مقادیری مانند آدرس نیاز داشته باشیم که کاربر اینتر کرده و در چند خط داده را وارد برنامه کند. برای انجام این کار در مقابل ویژگی MultiLine مقدار True را قرار میدهیم.
ScrollBars و WordWrap
در ویژگی ScrollBars میتوانیم مشخص کنیم که با زیاد شدن محتوا، کادر متن سکرول افقی داشته باشد یا عمودی و یا هردو آنها. توجه داشته باشید که برای داشتن سکرول افقی باید در مقابل ویژگی WordWrap مقدار False را قرار دهیم.
ShortCutsEnabled
اگر قصد داشته باشید که نگزاریم کاربر روی کادر متن کلیک راست کند یا این که از کلیدهای میانبر مانند (Ctrl+C) برای کپی کردن متن استفاده کند باید در مقابل ویژگی ShortCutsEnabled مقدار False قرار دهیم.
رویدادها
TextChanged
هنگامی که درون کادر متن چیزی مینویسیم یا از آن پاک میکنیم، رویداد TextChanged اتفاق میافتد. حال قصد داریم هر چیزی که درون کادر متن نوشته شد در همان لحظه درون یک لیبل نیز نمایش داده شود. برای این کار باید درون رویداد TextChanged کادر متن، متن لیبل را با مقدار ورودی کادر متن پر کنیم.
private void textBox1_TextChanged(object sender, EventArgs e) //متن کادر متن تغییر
{
label1.Text = textBox1.Text; //لیبل پرکردن
}
امیدواریم که این آموزش برای شما مفید واقع شده باشد. در قسمت بعد قصد داریم که در کنار شما عزیزان به ساخت ماشین حساب بپردازیم. لطفاً با ما همراه باشید...
نظرات دانشجویان
سلام اگه بخوایم تمام TextBox های موجود در یك فرم را بعد از انجام كار با یك دگمه خالی كنیم چه كار بایدكرد؟
سلام فربد جان، باید تمامی مقادیر TextBox هارو با خالی جایگزین کنی، این دوره را تا انتها مشاهده کنید اگر به جواب خود نرسیدید دوباره بپرسید تا بیشتر راهنمایتون کنم. البته میتونید سوال خود را در انجمن برنامه نویسی درسمن نیز بپرسید تا خیلی سریع تر به جواب برسید.
کادر متن فقط برای دریافت اطلاعات استفاده میشه؟
سلام وقتتون بخیر، بله
سلام.با تشکر از توضیحات عالی که تو این اموزش دادید.استاد اگه ممکنه طریقه ایجاد پدینگ(فاصله متن از کناره ها و بالا و پایین) رو در تکست باکس شرح بدید یا راهنمایی کنید که از چه متدی باید استفاده کنم؟ با تشکر
سلام دوست عزیز، از لطف شما ممنون هستیم، شما می توانید برای دسترسی راحت تر و سریع به جوابتان، سوال خود را در انجمن برنامه نویسی مطرح نمایید.
سلام خسته نباشید ببخشید من می خواستم بدونم چرا توی ویندوز فرم نمی شه حلقه نوشت ؟
سلام آرش جان، چرا نمیشه نوشت؟!!!!!
سلام خسته نباشید مرسی از تدریس های خوبتون بنده می خواهم جلسه های ۱۲ و ۱۳ و ۲۰ را تماشا کنم ولی خطا می زند
سلام وقتتون بخیر، این دوره احتمالا قراره آپدیت بشه و با تدریس خود مهندس عباسی باشه.
نظر شما در تصمیم دیگران اثرگذار است.
لطفا برای همراهان درسمن و بهتر شدن دوره نظر خود را بنویسید.