PDA

View Full Version : سوال: جدا كردن سه رقم سه رقم اعداد در تكس باكس



majid_vb_2008
چهارشنبه 14 اسفند 1387, 16:52 عصر
سلام
من ميخوام كاري كنم كه وقتي عدد تو تكس باكس تايپ ميشه سه رقم سه رقم از هم جدا بشه ولي نميخوام خاصيت عددي اون از دست بره چون بعدا قرار روش محاسبات انجام بشه :متفکر:


ممنون ميشم اگه راهنماييم كنيد.. :خجالت:


منتظرم.......

maminb
چهارشنبه 14 اسفند 1387, 18:21 عصر
فکر کنم راه چاره شما، MaskTextBox خود VB.NET باشه.

majid_vb_2008
چهارشنبه 14 اسفند 1387, 18:36 عصر
نه فكر نمي كنم MaskTextBox بدردم بخوره چون تعداد عددي كه تو ي تكس باكس تايپ مي شه مشخص نيست ولي توي MaskTextBox بايد تعداد عدد رو مشخص كنيد.
بعدشم نمي خوام قبل از اينكه عدد تايپ بشه جدا كننده ها ديده بشه

anooshiran
چهارشنبه 14 اسفند 1387, 18:37 عصر
سلام دوست عزيز

با كد زير مي تواني در زمان ورود ارقام وارده در TextBox را سه رقم سه رقم جداكنييا به عبارتي seperator بگذلري




Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged

sender.Text = Format(Val(sender.Text.Trim.Replace(",", "")), "#,0") '& aa
sender.SelectionStart = sender.TextLength
Dim _Value As Double = CLng(Replace(sender.Text, ",", ""))
End Sub




البته همانطور كه مطرح كردي گذلشتن seperator بلعث ميشود كه مقدار را نتواني كاملا برگرداني. براي اين كار نيز كد زير مشكلت را حل مي كند و رقم واقعي textBox را بر ميگرداند.




Dim _Value As Double = CLng(Replace(sender.Text, ",", ""))

majid_vb_2008
چهارشنبه 14 اسفند 1387, 19:19 عصر
مشكلم حل شد فقط براي برگردوندن عدد فقط عدد بعد از آخرين جدا كننده رو بر ميگردونه

اگه مي شه يك توضيح بده

از راهمنمايد متشكرم

majid_vb_2008
چهارشنبه 14 اسفند 1387, 22:48 عصر
يكي بياد توضيح بده من نفهميدم چجوري جداكننده ها رو بردارم و روي عدد محاسبات انجام بدم

بعدشم من ميخوام عدد رو توي بانك اطلاعات ذخيره كنم و نوع فيلدم عددي و اگه جداكننده ها باشن ارور ميده


دوستان راهنمايي كنيد.

majid_vb_2008
پنج شنبه 15 اسفند 1387, 00:08 صبح
يعني هيچ كس نمي تونه منو راهنمايي كنه:متعجب:

anooshiran
پنج شنبه 15 اسفند 1387, 00:32 صبح
سلام دوست عزيز

من كه برات توضيح دادم



Dim _Value AsDouble = CLng(Replace(TextBox1.Text, ",", ""))



دوست من هر وقت خواستي مفدار TextBoxرا بخواني يا مقدارش رو تو فيلد بريزي با كد بالا مقدار TextBox را بدست بيار

majid_vb_2008
پنج شنبه 15 اسفند 1387, 10:31 صبح
يعني عدد توي متغير Value_ قرار مي گيره


ممنون

mostafaaa
پنج شنبه 15 اسفند 1387, 23:14 عصر
سلام دوستان من
البته اگه برای جدا کردن اعداد به صورت سه رقم سه رقم از تابع خود دات نت استفاده کنیم بهتره!!

Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged
Me.TextBox1.Text = FormatNumber(Me.TextBox1.Text, 0)
Me.TextBox1.SelectionStart = Me.TextBox1.TextLength
End Sub
برای استفاده هم نیازی نسیت کاری بکنید به راحتی میتونید از خروجی این تابع مستقیم توی محاسبات استفاده کنید، خود داتنت عمل cast رو انجام میده.
مثلا :

MsgBox(Me.TextBox1.Text + 30)

majid_vb_2008
جمعه 16 اسفند 1387, 00:50 صبح
دوستان متشكرم ولي مشكلم كامل حل نشده است
بار روشي كه دوستمون mostafaaa (http://barnamenevis.org/forum/member.php?u=53462) گفت ميشه محاسبه انجام داد ولي با روشي كه من لازم دارم فقط عدد بعد از جدا كننده آخر در نظر گرفته مي شود.

روش من اينجوري كه من يك عدد رو توي يك تكس باكس ورودي مي گيرم و عددي كه قراره با اون ضرب بشه رو در تكس باكس دوم و عملايات ضرب در رويداد تكس باكس دوم قرار دارد و جواب در تكس باكس سوم نمايش داده مي شود.

يكم پيچيده شد ولي كمكم كنيد خيلي كارم گيره.


ممنون

mostafaaa
جمعه 16 اسفند 1387, 20:13 عصر
سلام دوست من
من بلاخره متوجه نشدم شما میخوای چیکار کنی؟!!
اگه میخوای که اعداد رو در زمان تایپ کردن سه رقم سه رقم جدا کنی که روشش رو گفتم، ولی اگه میخوای کار دیگه ای انجام بدی لطفا دقیق توضیح بده !!
یا علی

majid_vb_2008
شنبه 17 اسفند 1387, 16:49 عصر
سلام
مصطفي جان ممنون از توجهت مشكلم حل شد و اونم اين بود :
من موقع محاسبه محتويات تكس باكس رو توي تابع val ميزاشتم وقتي اين تابع رو پاك كردم درست شد.

ممنون از توجه همه دوستان انشاالله بتونم جبران كنم