چگونه در textBox فقط از اعداد به همراه جداکننده سه رقمی کاما استفاده کنم؟لطفاً راهنمایی کنید؟
Printable View
چگونه در textBox فقط از اعداد به همراه جداکننده سه رقمی کاما استفاده کنم؟لطفاً راهنمایی کنید؟
سلام دوست عزيز
براي وارد كردن فقط اعداد كه ميتونيد از MaskedTextBox استفاده كنيد و Mask اون رو روي عدد تنظيم كنيد. براي سه رقم هم زياد بحث شده جستجو كنيد اگر به نتيجه نرسيديد بگيد كه يا كد بزارم يا ... .
اگر فقط میخوای عدد وارد شه و جدا بشه از مانی تکست باکس استفاده کن و ریالش رو حذف کن
صدها نمونه در سایت و کد پروجکت هست جستجو کنید!
دوست عزیز من زیاد با سی شارپ آشنایی ندارم به همین دلیل این کد رو به زبان وی بی دات نت می ذارم شاید بدردتون بخوره
Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress
If IsNumeric( e.KeyChar)=false then e.Handled=True
End Sub
سلام.
https://barnamenevis.org/showthread.php?t=235638
کدشو اونجا گذاشتم. موفق باشین.
سلام دوست عزيز
اينم كد: (اين كد رو بزار توي TextChanged مربوط به TextBox1 )
long Number;
if (!long.TryParse(textBox1.Text.Replace(",",""),out Number))
MessageBox.Show("Error");
textBox1.Text = string.Format("{0:n0}",Number);
textBox1.Select(textBox1.Text.Length, 1);
فقط يه نكته اينكه اگه تعداد ارقام از يه حدي بيشتر بشه (از مقداري كه long قبول ميكنه)، خطا ميده.
اگه خواستيد بگيد كه روي اينش هم كار كنم.
براي اعداد خيلي بزرگ
private void textBox1_TextChanged(object sender, EventArgs e)
{
if (!string.IsNullOrEmpty(textBox1.Text))
{
textBox1.Text = string.Format("{0:N0}", decimal.Parse(textBox1.Text.Replace(",", "")));
textBox1.Select(textBox1.Text.Length, 0);
}
}
دوست عزيز كد شما درسته ولي چك نميكنه كه فقط عدد وارد تكست باكس شده يا نه. در واقع اگه مثلا يك حرف رو اضافه كنيم چون برنامه نميتونه به فرمت درخاستي تبديل كنه، خطا ميده.
تو كدي كه من نوشتم هم دقيقا براي همين يك long تعريف كردم كه فقط عدد رو بگيره...
بايد از روشهاي ديگه اي استفاده بشه. من اگه وقت كردم روش كار ميكنم. بايد فضاهاي بيشتري براي عدد بگيريم و يا مثلا هر 10 رقم رو جدا كنيم و .... (زياد هم سخت نيست)