簡體   English   中英

C#:如何在TextBox派生的類中從事件處理程序引發異常?

[英]C#: How can I raise an exception from an event handler in a class derived from TextBox?

我正在開發一個數字文本框,它是一個從TextBox派生的控件,它將僅接受數字輸入。 (是的,我知道有很多東西,但是我看到的比它們要復雜得多。)我的類重寫OnKeyDown()並檢查是否可以將新輸入的文本轉換為數字,並且如果該數字在指定的范圍內。 如果數字超出限制,則引發InvalidOperationException。

當我在窗體上測試此控件時,我希望看到未處理的異常消息彈出,但事實並非如此。 我認為這是因為事件處理程序拋出的未處理異常會被忽略。 但是由於此異常是從文本框內引發的,所以在窗體上沒有地方可以捕獲此異常。

我想我可以將一個名為BadValue的事件添加到我的控件中,但是無論何時使用該控件,我都必須記住為該事件添加一個處理程序。 我希望能夠依靠標准異常處理,但是我不知道如何。

謝謝你的想法。

如果您不希望文本框允許用戶在其中輸入數字,則可以輕松地使用帶數字掩碼的帶掩碼文本框,如果您可以正確輸入用戶的數字,則顯示錯誤值無效的錯誤消息,您可以使用此try catch碼

       try
        {
            int x = int.Parse(textBox1.Text);
        }
        catch
        {
            MessageBox.Show("The value is invalid");
        }

這將嘗試將值解析為int ..如果不是,則拋出異常,您當然可以根據值使用任何其他數字數據類型

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM