PDA

View Full Version : فرمت دادن به عدد ورودی



sm
چهارشنبه 17 اسفند 1384, 19:00 عصر
میخوام وقتی کاربر داره داخل یه تکست باکس عددش رو وارد میکنه سه رقم سه رقم بین اونها یه کاراکتر "," نیز اضافه کنم : 12536254 بشه 12,536,254
فقط میخوام با وارد کردن هر کاراکتر این عمل اتفاق بیافته نه اینکه آخر سر مثلا در Leave اون اینکار رو بکنیم
ممنون

HO457
چهارشنبه 17 اسفند 1384, 21:10 عصر
عزیز جان شما که تو سایت سابقه خوبی دارید چرا قبل از زدن تاپیک چستجو نمی کنید؟؟؟ توی قسمت C# آقای عابدی جو کنترل MaskEdit‌ رو گذاشتن.
http://www.barnamenevis.org/forum/showthread.php?t=39537

M.kavyani
چهارشنبه 17 اسفند 1384, 23:07 عصر
تو همین بخش هم در این مورد صحبت شده بود و روشها و مثالهایی گفتند که نیاز به کامپوننت خاصی نداره. مثلا" تکست باکسی که فقط کارکتر های عددی قبول میکرد و آنها رو هم فرمت میکرد. خیلی جالب بود. بگرد پیدا میکنید نشد در خدمت هستم

Hamedm
چهارشنبه 17 اسفند 1384, 23:20 عصر
میخوام وقتی کاربر داره داخل یه تکست باکس عددش رو وارد میکنه سه رقم سه رقم بین اونها یه کاراکتر "," نیز اضافه کنم : 12536254 بشه 12,536,254
فقط میخوام با وارد کردن هر کاراکتر این عمل اتفاق بیافته نه اینکه آخر سر مثلا در Leave اون اینکار رو بکنیم
ممنون
سلام


Format(variable, "#,0")

در پناه حق موفق باشید و پرتوان

habedijoo
پنج شنبه 18 اسفند 1384, 10:34 صبح
حامد جان سلام

گرفتن ورودی دو مرحله است . یکی ماسک کردن یکی فرمت دادن . ماسک کردن همان شکل و شمایل هنگام ورود اطلاعات است و فرمت همون ساختار پس از ورود . دوستمون دنبال ماسک کردن هستند .
که فکر کنم باید از کنترل MaskEdit‌ استفاده کنند . ( که توی 2005 هم هست ) .

taherbaghal
پنج شنبه 18 اسفند 1384, 11:17 صبح
این کنترل توی .NET 2003 هم هست؟
اگر نیست لطفاٌ بگید از کجا میشه بگید از کجا میشه دانلودش کرد و توی .NET 2003 استفادش کرد
مرسی

Hamedm
پنج شنبه 18 اسفند 1384, 15:55 عصر
سلام

حامد جان سلام

گرفتن ورودی دو مرحله است . یکی ماسک کردن یکی فرمت دادن . ماسک کردن همان شکل و شمایل هنگام ورود اطلاعات است و فرمت همون ساختار پس از ورود . دوستمون دنبال ماسک کردن هستند . من که از متن زیر همچین چیزی برداشت نمیکنم که شما فرمودید.
میخوام وقتی کاربر داره داخل یه تکست باکس عددش رو وارد میکنه سه رقم سه رقم بین اونها یه کاراکتر "," نیز اضافه کنم : 12536254 بشه 12,536,254



در پناه حق موفق باشید و پرتوان

HO457
پنج شنبه 18 اسفند 1384, 23:09 عصر
حامد جان فکر کنم کامل نخوندی فرمایش دوستمون رو:


فقط میخوام با وارد کردن هر کاراکتر این عمل اتفاق بیافته نه اینکه آخر سر مثلا در Leave اون اینکار رو بکنیم

Hamedm
جمعه 19 اسفند 1384, 00:12 صبح
سلام


حامد جان فکر کنم کامل نخوندی فرمایش دوستمون رو:
ای بابا، شما چرا قاط زدید :متعجب:.
یک TextBox در فرم قرار بدید و در TextChanged اینو بنویس:

Try

TextBox1.Text = Format(Val(TextBox1.Text.Trim.Replace(",", "")), "#,0")
TextBox1.SelectionStart = TextBox1.TextLength

Catch ex As Exception

End Try

در پناه حق موفق باشید و پرتوان

HO457
جمعه 19 اسفند 1384, 01:23 صبح
درسته حامد جان حق با تو بود.
مرسی بابت کد.

sm
شنبه 20 اسفند 1384, 20:06 عصر
ممنون از دوستان
بابت جستجوی قبل از مطرح کردن سوال هم چشم...ممنون که تذکر دادین

linux
شنبه 20 اسفند 1384, 21:47 عصر
سلام


ای بابا، شما چرا قاط زدید :متعجب:.
یک TextBox در فرم قرار بدید و در TextChanged اینو بنویس:

Try

TextBox1.Text = Format(Val(TextBox1.Text.Trim.Replace(",", "")), "#,0")
TextBox1.SelectionStart = TextBox1.TextLength

Catch ex As Exception

End Try

در پناه حق موفق باشید و پرتوان
یک مشکلی با این کد دارم این هست که شما وقتی عدد وارد می کنی دیگه نمی تونی مقدار null به تکس باکس بدی نمی دونم درست منظورم را رسوندم یا نه؟

Hamedm
شنبه 20 اسفند 1384, 23:46 عصر
سلام


یک مشکلی با این کد دارم این هست که شما وقتی عدد وارد می کنی دیگه نمی تونی مقدار null به تکس باکس بدی نمی دونم درست منظورم را رسوندم یا نه؟ببینید وقتی که وظیفه یک TextBox گرفتن یک عدد از کاربر است، بنطر شما معنی داره کاربر بتونه در TextBox مقدار Null وارد کنه؟
اگه خیلی اصرار دارید کاربر مجاز به وارد کردن مقدار Null باشه، راحت با شرط قبل از Format مشکل حل میشه.
مقادیر Null همیشه دردسر ساز است (برای فیلدهایی که باید عدد بگیرند). پس بهتر که از همون اول کاربر اجازه وارد کردن Null رو نداشته باشه.

در پناه حق موفق باشید و پرتوان

M.kavyani
یک شنبه 21 اسفند 1384, 23:39 عصر
با سلام
من مو به مو این تاپیک رو دنبال نکردم ولی این کدی است که در برنامه هام ازش استفده میکنم و هم مقدار Null رو ساپورت میکنه و هم فقط اعداد رو قبول میکنه. قابلیت Delete هم داره. فرمنت هم که قابلیت اصلیشه.
امیدوارم به کار دوستان بیاد و تکراری نباشه.

در رویداد keyPress می نویسم




Private Sub txtValue_KeyPress(ByVal sender As Object, ByVal e As

System.Windows.Forms.KeyPressEventArgs) Handles txtValue.KeyPress

Dim intKey As Char = e.KeyChar

If Not ((intKey >= "0" And intKey <= "9") Or intKey =
Chr(System.Windows.Forms.Keys.Back) Or intKey =
Chr(System.Windows.Forms.Keys.Delete)) Then

e.Handled = True
Else

e.Handled = False
End If
End Sub


و در رویداد textChange مینویسم





Private Sub txtValue_TextChanged(ByVal sender As System.Object,

ByVal e As System.EventArgs) Handles txtValue.TextChanged

If txtValue.Text > "" Then

txtValue.Text = FormatNumber(txtValue.Text, Nothing)
txtValue.Select(txtValue.Text.Length, 1)

End If
End Sub

lastgoldentiger
شنبه 31 تیر 1391, 05:42 صبح
الان 6 صبحه و من لاگین شدم که فقط از این کد جامع تشکر کنم و تشویق میشم که من هم کد هایی که به زحمت نوشتم و ادیتش کردم رو در این سایت قرار بدم.
مرسی بابت این کد روان و اوکی . . .