PDA

View Full Version : سوال: محدود كردن textbox



vahid_erad
سه شنبه 21 مهر 1388, 18:47 عصر
سلام
چطور ميشه textbox رو محدود به گرفتن چند كاركتر خاص و تعداد كاراكتر مشخص كرد؟

mahdi_7610
سه شنبه 21 مهر 1388, 18:53 عصر
سلام

توی قسمت propertise مربوط به textbox خاصیتی به اسم MaxLength هست که میتونید تعداد کاراکتر ها را اونجا مشخص کنید .

asefy2008
سه شنبه 21 مهر 1388, 20:04 عصر
منظور از کاراکتر خاص چی هست ؟(لطفا یه مثال بزنید)

vahid_erad
سه شنبه 21 مهر 1388, 22:51 عصر
منظور از کاراکتر خاص چی هست ؟(لطفا یه مثال بزنید)

مثلا فقط عدد بگيره.و كاركترهاي ديگه تايپ نشن

sara.f
چهارشنبه 22 مهر 1388, 01:29 صبح
مثلا فقط عدد بگيره.و كاركترهاي ديگه تايپ نشن
سلام
من چنین خاصیتی را تا به حال در properties ندیدم، ولی اگر با دیتا بیس کار می کنید به راحتی می تونید این ویژگی را اعمال کنید
حالا شاید دوستان دیگر خاصیتی رابرای اعمال این .یژگی در properties مربوط به textbox سراغ داشته باشند.

mahdi_7610
چهارشنبه 22 مهر 1388, 08:20 صبح
مثلا فقط عدد بگيره.و كاركترهاي ديگه تايپ نشن

فقط عدد قبول می کنه


private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
{
if (!char.IsControl(e.KeyChar) && !char.IsDigit(e.KeyChar))
{
e.Handled = true;
}
}
}
فقط حروف قبول می کنه


private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
if (!(!((e.KeyChar >= '0') && (e.KeyChar <= '9')) || (e.KeyChar == 8)))
{
e.Handled = true;
}
}

asefy2008
پنج شنبه 23 مهر 1388, 09:01 صبح
دوست عزیز این (http://barnamenevis.org/forum/showthread.php?t=173074) رو ببین کد دوستمون یه مقدار مشکل داره.
موفق باشید

asefy2008
پنج شنبه 23 مهر 1388, 21:17 عصر
شما اگه اون لینکی که من در پست 7 قرار دادم رو مشاهده کنید هم مشکل گفته شده هم راه حل.
موفق باشید.

asefy2008
پنج شنبه 23 مهر 1388, 23:42 عصر
در این که شما چه کدی نوشتید برام مهم نیست .
دوست عزیز چرا ترش می کنی مگه هدف ما از پاسخ گویی این نیست که با کمک هم به بهترین جواب برسیم این جا کد شما مشکل داشت من کمک کردم جای دیگه شما مشکل کد من رو حل کن .


چون یه کد را میشه به طرق مختلف نوشت .
درسته.


مشکل کدی که من نوشتم را بگید
چشم ،شما فقط نزن میگم
آیا کد شما این نبود ؟

private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
{
if (!char.IsControl(e.KeyChar) && !char.IsDigit(e.KeyChar))
{
e.Handled = true;
}
}
}
این کد رو اگه یک بار امتحان کنی می بینی در مورد copy و past حروف رو رد می کنه.یعنی اون طوری که شما فرمودید فقط عدد قبول میکنه نیست.
در مورد راه حلش هم میشه از کدی که دوستمون زحمت کشیدن و در تایپیکی که من لینکش رو قرار دادم استفاده کرد که به صورت زیر میشه:

bool TextCheck = false;
bool KeyPressed = false;
private void textBox1_TextChanged(object sender, EventArgs e)
{
if (!KeyPressed)
{
if (!TextCheck)
{
TextCheck = true;
string Text = textBox1.Text;
textBox1.Text = "";
for (int i = 0; i < Text.Length; i++)
if (Convert.ToInt16(Text[i]) > 47 && Convert.ToInt16(Text[i]) < 58)
textBox1.Text += Text[i];
textBox1.Select(textBox1.TextLength, 0);
TextCheck = false;
}
KeyPressed = false;
}
}

private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
KeyPressed = true;
e.Handled = Char.IsDigit(e.KeyChar) == false && Char.IsControl(e.KeyChar) == false;
if (!char.IsDigit(e.KeyChar) && ((int)e.KeyChar) != 8)
KeyPressed = false;
}


توی اون تاپیک من توضیحی در مورد مشکل کدی که نوشتم ندیدم .
فکر کنم خوب اون تایپیک رو مطالعه نکرده باشی چون در پست 2 اون تایپیک مشکل گفته شد و در پست 4 هم یکی از دوستان زحمت کشیدن و راه حل ارایه دادن.

امیدوارم گویا بوده باشه اگر مشکلی بود در خدمتم
اگه اشتباه می کنم بفرمایید چون سی شارپ رو کامپیوترم نیست.
موفق باشید