對於ComboBox,當我設置SelectionLength = 0,I得到的錯誤:ComboBox.SelectionLength = 0拋出異常InvalidArgument
InvalidArgument=Value of '-1470366488' is not valid for 'start'.
Parameter name: start
Stack Trace:
at System.Windows.Forms.ComboBox.Select(Int32 start, Int32 length)
at System.Windows.Forms.ComboBox.set_SelectionLength(Int32 value)
at MyCompany.Odin.WebClient.STComplexView.loadViewFormats()
這不是一個後Clear()
,也不是綁定控件。
的(不那麼)有趣的這段代碼的事情:
//Adding Items to the combo box (6 in total)
// ...
viewFormatComboBox.Items.Add(appResMgr.GetString("STR_6X2_HEXAXIAL"));
viewFormatComboBox.SelectedIndex = 2;
viewFormatComboBox.SelectionLength = 0; //<<<< The exception is thrown here
無處在我們的代碼我們指定SelectionStart,但它已經得到了-1470366488值,當我到達我上面包含的代碼。我假設組合框做了
ComboBox.Select(Int32 start, Int32 length)
調用,通過設置SelectionLength觸發時,這是使用。我假設SelectionStart用於啓動參數和中提琴,我們在上面顯示了InvalidExceptionArgument。
這是調試代碼。風格是DropDownStyle
,其他一切看起來都不起眼,但在調試器中,我看到SelectionStart
屬性爲-1470366488。
這段代碼已經存在了好幾年了,今天我第一次遇到這個異常,當測試一個調試版本時。我使用SelectedIndex = 2行選擇要顯示的項目,然後在設置SelectionLength時出現異常 有任何解釋?
我認爲問題在於你對「選擇」的解釋 - 你想在組合框中選擇文本,還是你想要選擇一個項目? – davisoa 2012-01-31 20:22:05
嗯。根據例外情況,您爲該值指定了「-1470366488」,而不是0.您顯示的代碼實際上並未包含設置「SelectedIndex」屬性的行,因此我無法說出出錯了。 'SelectionStart'與'SelectedIndex'無關;這可能是混淆的根源嗎? – 2012-01-31 20:30:10
davisoa - 我試圖確保在文本框中沒有選中任何文本。 – 2012-01-31 20:38:56