کنترل TextBox
کنترل TextBox ابتداییترین وسیله برای ورود اطلاعات در یک فرم ویندوزی میباشد. این کار را با تایپ آنها (اطلاعات) در TextBox انجام میدهید. متنی که شما تایپ میکنید، به وسیله خاصیت Text این کنترل، قابل دسترسی است. در جدول زیر، خاصیتهای مفید این کنترل که شما میتوانید از انها استفاده کنید آمده است :
خاصیت | توضیح | |
AcceptsReturn | تعیین میکند که در TextBox متن به صورت چند خطی نوشته شود یا نه. که در این صورت با زدن دکمه اینتر در داخل TextBox خط جدید ایجاد میشود. | |
AcceptsTab | در حالت چند خطی این خاصیت باعث میشود که مکان نما با زدن دکمه tab به جای اینکه به کنترل بعدی برود به tab بعد برود. | |
Enabled | اگر این خاصیت در حالت false قرار بگیرد TextBox به صورت read-only در میآید و در نتیجه در حکم یک برچسب میشود. | |
Font | نوع فونتی که در جعبه متن مورد استفاده قرار میگیرد. | |
Lines | خطوط متن در یک textbox چند خطی | |
Multiline | اگر True باشد به شما اجازه تایپ چندین خط در TextBox را میدهد. | |
Text | متن داخل جعبه متن را نشان میدهد. | |
PasswordChar | کاراکترهایی را که توسط کاربر وارد میشوند پنهان میکند. | |
ReadOnly | تعیین میکند که آیا متن قابل ویرایش باشد یا نه. | |
Visible | قابل رویت بودن یا نبودن textbox را تعیین میکند | |
WordWrap | در تکس باکس چند خطی کاربرد دارد. باعث میشود وقتی که نشانگر ماوس به انتهای تکس باکس رسید به صورت اتوماتیک به خط بعد منتقل شود. |
در مثال زیر نحوه استفاده از TextBox نشان داده شده است. یک پروژه ویندوزی ایجاد کنید. برنامه از شما میخواهد که دو عدد را وارد کنید و با زدن دکمه جمع آنها را با استفاده از یک برچسب (label) به شما نشان میدهد. دو textbox را روی فرم بکشید و نام اولی را textBoxFirstNumber و دومی را textBoxSecondNumber بگذارید. سپس در کنار هر textbox یک کنترل label که نشان دهنده هدف آنهاست (textbox ها) قرار دهید. یک کنترل lable دیگر برای نشان دادن حاصل جمع دو عدد در فرم قرار داده و نام آن را labelSum بگذارید. یک دکمه Button را هم اضافه کرده و نام آن را buttonAdd بگذارید. مکان قرار گیری و سایز کنترلها را مانند شکل زیر تنظیم کنید:
بر روی دکمه add دو بار کلیک کرده و در رویداد کلیک مربوط به آن کد زیر را وارد نمایید :
private void buttonAdd_Click(object sender, EventArgs e) { int num1 = Int32.Parse(textBoxFirstNumber.Text); int num2 = Int32.Parse(textBoxSecondNumber.Text); int sum = num1 + num2; labelSum.Text = "Sum = " + sum; }
کدهای نوشته شده در داخل textBoxFirstNumber و textBoxSecondNumber با استفاده از متد ()Parse کلاس Int32 به نوع صحیح تبدیل شده و در متغیرهای مربوطه ذخیره میشوند. ما به این تبدیل نیاز داشتیم چون خاصیت Text از نوع رشته است. سپس جمع آنها محاسبه میشود. و در نهایت مقدار جمع به خاصیت Text برچسب labelSum نسبت داده میشود. یکی از مفیدترین رویدادهای تکست باکس، رویداد TextChanged است. این رویداد زمانی رخ میدهد که متن داخل تکست باکس دستکاری شود (تغییر کند). برنامهی زیر یک مثال از کاربرد این رویداد نشان میدهد. یک برنامه ویندوزی دیگر را ایجاد و یک تکست باکس (Text Box) و یک برچسب (Label) به آن اضافه کنید. میتوانید نام آنها را تغییر ندهید.
متن برچسب را که در داخل خاصیت Text آن قرارگرفته است را پاک کنید.
برای انتخاب کردن آن میتوانید از نوار کرکرهای بالای پنجرهی خواص (Properties) استفاده کنید. رویداد پیش فرض کنترل تکست باکس (Text Box) رویداد TextChanged است. پس با دوبار کلیک کردن بر روی تکست باکس یک کنترل کننده رویداد ( Event Handler) برای رویداد گفته شده ایجاد میکند. کد زیر را به Event Handler اضافه کنید.
private void textBox1_TextChanged(object sender, EventArgs e) { label1.Text = textBox1.Text; }
حالا برنامه را اجرا کرده و هر چیزی را که میخواهید درون تکست باکس بنویسید. مشاهده میکنید که هر چیزی که شما درون تکست باکس مینویسید دقیقاً به همان صورت بر روی بر چسب نوشته میشود.
زمانی که متن تکست باکس دستکاری میشود، Event Handler اجرا شده و هر متنی را که درون تکست باکس قرار دارد را دقیقاً به همان صورت درون برچسب (label1) قرار میدهد. به طور پیش فرض، هر تکست باکس فقط میتواند یک خط را درون خود جای دهد. برای اینکه چند خط درون تکست باکس قرار بگیرد، میتوانید مقدار خاصیت Multiline آنرا برابر با True قرار دهید. وقتی که شما اینکار را انجام میدهید، باید توجه داشته باشید که شما نمیتوانید طول تکست باکس را در قسمت طراحی تغییر دهید.
شما میتوانید مقدار خاصیت WordWrap را برابر با True قرار دهید تا نشانگر ماوس زمانی که به انتهای قسمت راست تکست باکس رسید به طور اتوماتیک به خط بعد برود. اگر مقدار آن برابر با False باشد، متن در همان خط ادامه پیدا میکند. شما میتوانید مقدار خاصیت ScrollBar را به Horizontal (افقی)، Vertical (عمودی) و یا هر دو تغییر دهید. این کار باعث میشود که قسمت پیمایش به تکست باکس چند خطی اضافه شود.
اگر تکست باکس شما میخواهد یک پسورد را بپذیرد، شما باید مقدار خاصیت PasswordChar را به چیزی مانند * تغییر دهید (این کاراکتر بسته به سلیقهی شما میتواند هر چیزی باشد). وقتی که کاربر یک حرف را وارد کند این کاراکتر (*) به او نمایش داده میشود. به شکل زیر دقت کنید.
سلام ببخشید من میخوام یه تکست باکس بنویسم که وقتی روش کلیک میکنی متن قبلی خود به خود پاک شه و بگه متن جدیدو بنویس مثلا وقتی میخوای بری تو اینتستاگرام روی تکست باکس username یه متنی هست که میگه شماره تلفن یا نام کاربری خود را وارد کنید وقتی رو تکست باکسش کلیک میکنی اون متن که حالت transphert داره پاک میشه و شما میتونی یوزرنیم خودتو وارد کنی یه متن نمایشی میخوام بنویسم که وقتی میخوای توی تکست باکس چیزی بنویسی اون متن نمایشی پاک شه ؟
سلام ببخشید یه سوال داشتم
میخوام برنلمه ای بنویسم که به من تعداد کلمات و
جملات یک تکست باکس رو نشون بده چیکار باید بکنم؟
این لینک را ببینید
به دست آوردن تعداد کاراکترها، کلمات و جملات در سی شارپ
سلام من میخوام یه تکس باکس بسازم که به من نمایش بدع ایاa>10 اگر هست یه پیغام به من نشون بدع من تا اینجارو کد نویسی کردم ولی یه مشکل بزرگی که دارم اینه که اگع تکس باکس خالی بزارم یعنی هیچی توش ننویسم بعد دکمه باتن بزنم یه اروری میاد میخوام کد اون ارور بنویسم مثلا دیگع اون ارورع نیاد یا مثلا بنویسه تکس باکس خالی است لطفا راهنمایی کنین ممنون
سلام و احترام
تو سایت آموزش کنترل MasketTextBox رو نداشتید، لطفا آموزش این کنترل رو هم بذارید، حیفه آخه میشه گفت آموزش همه ی کنترل های کاربردی رو دارید به غیر مسک تکس باکس.
باتشکر
سلام دوست عزیز..چشم اونم در آینده ای نه چندان دور اضافه می کنیم