PDA

View Full Version : [Q] Hiển thị số theo định dạng



hoangminh
20-06-2003, 22:56
Tôi muốn hien thị số trong khung Label theo định dạng nhu 1000 -> 1.000 (100000 -> 100.000) để dể nhìn vây5 pagỉ làm sao?. Nếu Label không có chức năng này thi dung TextBox cũng được, mong các cao thủ giúp đở ( trong VB.NET) nếu được xin hãy mail cho minh theo địa chỉ hoangminh1703@yahoo.com xin cam ơn nhiều!!!

hitech
20-06-2003, 23:10
Trước khi cho hiển thị trên Label thì bạn xử lý kết quả trong code bằng cách chuyển qua dạng text. Vì Label không nhập liệu được.
Còn nếu sử dụng Textbox thì bạn có thể catch event LostFocus rồi sau đó xử lý property Text của nó.

hoangminh
21-06-2003, 23:00
Hitech có thể chỉ mình cách định dạng số trên TextBox được không?, mình thích dùng Label hơn vì chỉ để xuất kết quả lên thôi chứ không có nhập liệu, TexBox cũng có chức năng không cho nhập liệu nhưng nó không hây bằng cách xuất trên Label. Hitech giúp mình nhé ! Cám ơn Hitech nhiều lắm.

White_Rose
22-06-2003, 03:40
Dim s As String, i, n, len As Long
s = n.ToString()
len = s.Length()
do while (len>3)
len = len - 3
s = s.Insert(len, ".")
loop

lbl.Text = s

hitech
22-06-2003, 07:04
Đoạn code của WR đã định dạng đúng yêu cầu của Hoàng Minh rồi đấy. Phần còn lại là phụ thuộc vào Minh add nó vào đâu thôi.

bpmtri
23-06-2003, 08:41
Nếu bạn muốn định dạng số hay ngày tháng theo định dạng của Việt Nam thì có một cách khác chính qui hơn. Bạn xem VD dưới đây nhé:



Imports System.Globalization

Public Class Form1
Inherits System.Windows.Forms.Form

'...

Private Sub Form1_Load(ByVal sender As System.Object,
ByVal e As System.EventArgs)
Handles MyBase.Load

Dim aLong As Long
Dim aDouble As Double
Dim aDateTime As DateTime
Dim ci As CultureInfo = New CultureInfo("vi-VN", False)
Dim nfi As NumberFormatInfo = ci.NumberFormat
Dim dtfi As DateTimeFormatInfo = ci.DateTimeFormat

aLong = 1000000
aDouble = 1234.567
aDateTime = DateTime.Now
Label1.Text = aLong.ToString("N", nfi)
Label2.Text = aDouble.ToString("N", nfi)
Label3.Text = aDateTime.ToString("d", dtfi)
Label4.Text = aDateTime.ToString("T", dtfi)
End Sub
End Class


Bạn có thể tham khảo thêm các lớp khác trong Namespace System.Globalization như DateTimeFormatInfo, CompareInfo, TextInfo.

hoangminh
23-06-2003, 23:14
Minh cám ơn mọi người nhiều lắm, sau khi Minh viết xong chương trinh Minh sẽ post lên cho mọi người test và đánh giá chương trình mầm non này vì Minh chỉ mới tìm hiểu VB.NET thôi, lại tự nghiên cứu nên còn nhiều vấn đề cần học ở mọi người. rất cám ơn mọi người đã giúp mình (chương trình của mình sử dụng ADO.NET, DATAGIRD.NET, CSDL ACCESS 2000 và khoảng 3->4 form lận, có thú vị khong nhỉ!)

nguyen_lanthao
23-06-2003, 23:35
sao mà phiền phức quá vậy. Tại sao không dùng làm Format
dim s as string
dim today as dateTime
today = Date.Now()
s = format(today,"dd/MM/yyyy")