# برنامه نویسی با محصولات مایکروسافت > برنامه نویسی مبتنی بر Microsoft .Net Framework > VB.NET > سوال: جدا كردن سه رقم سه رقم اعداد در تكس باكس

## majid_vb_2008

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


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


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

----------


## maminb

فکر کنم راه چاره شما، MaskTextBox خود VB.NET باشه.

----------


## majid_vb_2008

نه فكر نمي كنم MaskTextBox بدردم بخوره چون تعداد عددي كه تو ي تكس باكس تايپ مي شه مشخص نيست ولي توي MaskTextBox بايد تعداد عدد رو مشخص كنيد.
بعدشم نمي خوام قبل از اينكه عدد تايپ بشه جدا كننده ها ديده بشه

----------


## anooshiran

سلام دوست عزيز

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


 
PrivateSub 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 AsDouble = CLng(Replace(sender.Text, ",", ""))
EndSub
 
 


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


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

----------


## majid_vb_2008

مشكلم حل شد فقط براي برگردوندن عدد فقط عدد بعد از آخرين جدا كننده رو بر ميگردونه 

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

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

----------


## majid_vb_2008

يكي بياد توضيح بده من نفهميدم چجوري جداكننده ها رو بردارم و روي عدد محاسبات انجام بدم

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


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

----------


## majid_vb_2008

يعني هيچ كس نمي تونه منو راهنمايي كنه :متعجب:

----------


## anooshiran

سلام دوست عزيز

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


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



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

----------


## majid_vb_2008

يعني عدد توي متغير Value_ قرار مي گيره


ممنون

----------


## mostafaaa

سلام دوستان من 
البته اگه برای جدا کردن اعداد به صورت سه رقم سه رقم از تابع خود دات نت استفاده کنیم بهتره!!
    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

دوستان متشكرم ولي مشكلم كامل حل نشده است
بار روشي كه دوستمون mostafaaa گفت ميشه محاسبه انجام داد ولي با روشي كه من لازم دارم فقط عدد بعد از جدا كننده آخر در نظر گرفته مي شود.

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

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


ممنون

----------


## mostafaaa

سلام دوست من
من بلاخره متوجه نشدم شما میخوای چیکار کنی؟!!
اگه میخوای که اعداد رو در زمان تایپ کردن سه رقم سه رقم جدا کنی که روشش رو گفتم، ولی اگه میخوای کار دیگه ای انجام بدی لطفا دقیق توضیح بده !!
یا علی

----------


## majid_vb_2008

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

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

----------

