關於呼叫自己寫控制元件庫後,導致主窗體出現索引超範圍,或者值無效等等的問題,以下是解決方法

飄落的雨滴發表於2020-10-22

錯誤如下圖,該錯誤在程式碼中並不會報紅。大家可以看看能否解決。

 

 

自定義窗體控制元件,在呼叫的時候會有一個預讀的過程,這個時候如果我們定義下拉選單,如下:
comboBox1.Items.Clear();
comboBox1.Items.Add("123");
for (int i = 0; i < 5; i++)
{
comboBox1.Items.Add("345");
}

comboBox1.Text = comboBox1.Items[0].ToString();
拉出來的控制元件就會顯示123,而不會顯示345。
一但comboBox1.Items.Add("123");這句去除掉,程式不會報紅,而
使用了該控制元件的窗體就會出錯,同時該控制元件也無法使用。而程式執行卻能正常執行,
因為預讀的時候並不進入for迴圈;

該錯誤就比如下面的程式碼,Console.WriteLine(str1);,會報str1上下文不存在一樣,不過這個會報紅。
for (int i = 0; i < 5; i++)
{
string str1 = "22";
}
Console.WriteLine(str1);

 

相關文章