Từ 1 tới 8 trên tổng số 8 kết quả

Đề tài: Báo lỗi khi nhập số âm vào textbox?

  1. #1
    Ngày gia nhập
    12 2006
    Nơi ở
    HCM
    Bài viết
    62

    Mặc định Báo lỗi khi nhập số âm vào textbox?

    Mình tạo 1 textbox trên form.Code như sau :
    a=Convert.Todouble(textbox.Text); để lấy ra số được nhập vào textbox.
    biến a đã được khai báo trước
    Nhưng nhập số âm hay có dấu trừ thì nó báo lỗi là Input string was not in a correct format.?

  2. #2
    Ngày gia nhập
    05 2007
    Bài viết
    55

    Bạn thử test đoạn này xem nhé:
    Code:
    string s = "-12";
                double d =
                Convert.ToDouble(s);
    Qua đc đoạn mã này hay ko bạn vẫn sẽ có 1 kết luận.
    (Khi nhập số âm để ý xem dấu và số có bị phân cách bằng ký tự space hay ko)

  3. #3
    Ngày gia nhập
    01 2007
    Bài viết
    412

    Trích dẫn Nguyên bản được gửi bởi whamy04 Xem bài viết
    Mình tạo 1 textbox trên form.Code như sau :
    a=Convert.Todouble(textbox.Text); để lấy ra số được nhập vào textbox.
    biến a đã được khai báo trước
    Nhưng nhập số âm hay có dấu trừ thì nó báo lỗi là Input string was not in a correct format.?
    Mình đã thử, không hề có lỗi như bạn nói.
    Lỗi mà bạn nói là do bạn gõ không đúng cách (như nampt đã nói: giữa dấu "-" và số có khoảng trắng)

  4. #4
    Ngày gia nhập
    12 2006
    Nơi ở
    HCM
    Bài viết
    62

    Không hề có khoảng trắng giữa dấu - và số khi được nhập vào.
    Đây là nguyên đoạn chương trình của mình :

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Text;
    using System.Windows.Forms;

    namespace WindowsApplication1
    {
    public partial class Form1 : Form
    {
    double a;
    public Form1()
    {
    InitializeComponent();
    }

    private void textBox1_TextChanged(object sender, EventArgs e)
    {
    a = Convert.ToDouble(textBox1.Text);
    }
    }
    }

    <Cảnh cáo : cho mã nguồn vào thẻ CODe đi >
    Đã được chỉnh sửa lần cuối bởi Xcross87 : 27-06-2007 lúc 02:10 PM.

  5. #5
    Ngày gia nhập
    01 2007
    Bài viết
    412

    Trích dẫn Nguyên bản được gửi bởi whamy04 Xem bài viết
    Không hề có khoảng trắng giữa dấu - và số khi được nhập vào.
    Đây là nguyên đoạn chương trình của mình :

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Text;
    using System.Windows.Forms;

    namespace WindowsApplication1
    {
    public partial class Form1 : Form
    {
    double a;
    public Form1()
    {
    InitializeComponent();
    }

    private void textBox1_TextChanged(object sender, EventArgs e)
    {
    a = Convert.ToDouble(textBox1.Text);
    }
    }
    }
    Vậy bị lỗi là đúng rồi, nếu bạn nhập số dương thì không nói làm gì
    Khi bạn nhập số âm thì chắc chắn đầu tiên bạn sẽ nhập "-" trước đúng không? Lúc đó đoạn mã thụ lý trong tình huống TextChanged của textbox1 sẽ chạy, khi đó a = Convert.ToDouble(<dấu "-">), lúc đó a = dấu "-"
    Bây giờ thì bạn hiểu tại sao lỗi "input string is not..." xảy ra rồi chứ?

  6. #6
    Ngày gia nhập
    05 2007
    Bài viết
    55

    Mặc định Báo lỗi khi nhập số âm vào textbox?

    E hèm! Khổ cho tôi ngồi đoán mò!
    Nếu nhất thiết dùng textchanged thì bạn phải lường trước khi nhập dấu trừ "-" và dấu chấm ".", xem còn gì thì tự bổ sung tiếp

  7. #7
    Ngày gia nhập
    12 2006
    Nơi ở
    HCM
    Bài viết
    62

    Ah, đã hiểu.Mới viết ctrình đầu tiên.
    vậy thì phải dùng sự kiện gì để không báo lỗi??
    Cho mình hỏi luôn là đối với mỗi button, textbox,.... làm sao biết có những sự kiện gì liên quan đến nó?
    Tra cứu như thế nào trong MSDN?
    Đã được chỉnh sửa lần cuối bởi whamy04 : 27-06-2007 lúc 03:31 PM.

  8. #8
    Ngày gia nhập
    05 2007
    Bài viết
    55

    Trích dẫn Nguyên bản được gửi bởi whamy04 Xem bài viết
    vậy thì phải dùng sự kiện gì để không báo lỗi
    thường sự kiện gì cũng có lỗi để báo. Tìm cái ít lỗi hơn thôi.
    Nếu không nhất thiết phải lập tức lấy số khi vừa gõ phím thì bạn có thể convert khi cần dùng nó.
    Chẳng hạn nếu muốn cộng 2 số thì bạn convert khi user click vào button có text là dấu bằng "="
    Nếu cần dùng đến textchanged thì return khi gặp phải dấu ".", "-"

    Trích dẫn Nguyên bản được gửi bởi whamy04 Xem bài viết
    Cho mình hỏi luôn là đối với mỗi button, textbox,.... làm sao biết có những sự kiện gì liên quan đến nó?
    Nhấp chuột phải vào button, textbox, ... đó, rồi chọn properties, để ý trên properties có hình "sấm sét" loằng ngoằng di chuyển chuột đến thì thấy tip "Events", nhấp vào đó là biết có những sự kiện gì
    Trích dẫn Nguyên bản được gửi bởi whamy04 Xem bài viết
    Tra cứu như thế nào trong MSDN?
    Tôi hay tra bằng Index.
    Để đơn giản thấy cái gì ko biết bạn cứ để caret (con nháy) ở đó rồi nhấn F1

Các đề tài tương tự

  1. Không cho người sử dụng nhập ký tự vào textbox?
    Gửi bởi ngovanan94 trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 2
    Bài viết cuối: 21-05-2013, 08:49 PM
  2. Trả lời: 10
    Bài viết cuối: 20-04-2012, 01:02 PM
  3. Trả lời: 14
    Bài viết cuối: 10-10-2011, 03:58 PM
  4. Code cho ẩn kí tự khi nhập password vào textbox trong form đăng nhập
    Gửi bởi mrkiemhiep trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 6
    Bài viết cuối: 16-03-2011, 11:10 PM
  5. nhập dữ liệu vào textbox enter con trỏ xuống textbox kế tiếp?
    Gửi bởi hoanghuynh2409 trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 6
    Bài viết cuối: 25-12-2010, 09:57 PM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn