ขอวิธีใส่คอมม่าให้กับตัวเลข ผมใช้ vb.net 2015 windows app พอใส่เกินหลักพันแล้วใช้ไม่ได้
เช่น 1234 ก็จะเป็น 1,234 แต่พอผมกด 567 ดันเป็น 5,671,234 แทนที่จะเป็น 1,234,567
Code (VB.NET)
Private Sub TextBox8_TextChanged(sender As Object, e As EventArgs) Handles TextBox8.TextChanged
Dim myNumber As Integer = TextBox8.Text
TextBox8.Text = (myNumber.ToString("##,###"))
End Sub
Tag : .NET, Win (Windows App), VB.NET, VS 2015 (.NET 4.x)
Date :
2018-05-14 15:00:54
By :
sakkapong
View :
4416
Reply :
7
c# ใช้ N0 ครับ ไม่รู้ VB เหมือนกันไหม
อยากมีทศนิยม 2 ตำแหน่งก็ N2
Code (C#)
TextBox8.Text = (myNumber.ToString("N0"))
Date :
2018-05-14 15:30:44
By :
nPointXer
5,671,234 น่าจะเกิดจากตำแหน่งที่กดนะครับ
แสดงว่า TextBox8.Text = 1,234 และ startup อยู่ที่ 0 แค่ เราเปลี่ยนให้ startup ไปอยู่ท้ายสุดก็ได้แล้วครับ
ปล.ไม่ควรใช้ TextChanged แต่ให้ใช้ Leave เพื่อให้เปลี่ยนแปลงหลังจาก คีย์ ตัวเลขเสร็จ และ ควร ดักจับ Error จากการป้อนผิด
ใน KeyPress อีกด้วยนะครับ โดยต้องให้แน่ใจว่า ที่กรอกลงไปนั้น เป็นตัวเลข หรือ ตัวที่เราต้องใช้จริงๆ
สามารถศึกษา ข้อมูลเพิ่มเติมได้ที่
https://msdn.microsoft.com/en-us/library/system.windows.forms.textbox(v=vs.110).aspx
Date :
2018-05-14 15:57:37
By :
lamaka.tor
N0 ครับ
Code (VB.NET)
.ToString("N0")
Date :
2018-05-14 16:30:27
By :
pakyaudio
อ๋อผมเข้าใจละ ลองเอาไปแปลงดูนะครับ ของผมเอาไว้ใน keyup นะ
น่าจะคล้ายๆกัน แต่ผมหาวิธีที่ใช้กับทศนิยมยังไม่ได้ครับ
Code (C#)
private void txtCash_KeyUp(object sender, KeyEventArgs e)
{
if (!string.IsNullOrEmpty(txtCash.Text))
{
System.Globalization.CultureInfo culture = new System.Globalization.CultureInfo("en-US");
int valueBefore = Int32.Parse(txtCash.Text, System.Globalization.NumberStyles.AllowThousands);
txtCash.Text = String.Format(culture, "{0:N0}", valueBefore);
txtCash.Select(txtCash.Text.Length, 0);
}
}
ประวัติการแก้ไข 2018-05-14 17:46:44
Date :
2018-05-14 17:45:59
By :
nPointXer
Load balance : Server 03