Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

поиск в listbox

74K
27 февраля 2013 года
darya17
21 / / 18.02.2013
Поиск слов в listBox введенных в textBox-e
Код:
private: System::Void button11_Click(System::Object^  sender, System::EventArgs^  e) {

listBox3->Items->Clear();
if (checkBox1->Checked){
       for (int i = 0; i < listBox1->Items->Count-1; i++){
       String ^str=listBox1->Items[i]->ToString();
       if (str->Substring(0, textBox1->Text->Length) == textBox1->Text){ listBox3->Items->Add(listBox1->Items[i]->ToString()); }
       }
}
if (checkBox2->Checked){
       for (int i = 0; i < listBox2->Items->Count-1; i++){
       String ^str=listBox2->Items[i]->ToString();
       if (str->Substring(0, textBox1->Text->Length) == textBox1->Text){ listBox3->Items->Add(listBox2->Items[i]->ToString()); }
       }
}
 }
Если ввожу более двух символов, то вылетает ошибка
Дополнительные сведения: Индекс и длина должны указывать на позицию в строке.
что делаю не так?
414
27 февраля 2013 года
CassandraDied
763 / / 24.05.2012
А что за ошибка?
20K
27 февраля 2013 года
ellor!
198 / / 24.05.2012
Во-первых, в цикле условие

либо
 
Код:
i < listBox1->Items->Count
, либо
 
Код:
i <= listBox1->Items->Count - 1
Вместо "str->Substring" тогда уж "str->Contains" использовать.
74K
27 февраля 2013 года
darya17
21 / / 18.02.2013
Вот это появляется



"Lab1.exe" (Управляемый (v4.0.30319)): Загружен "C:\Windows\Microsoft.Net\assembly\GAC_32\mscorlib\v4.0_4.0.0.0__b77a5c561934e089\mscorlib.dll"
"Lab1.exe" (Управляемый (v4.0.30319)): Загружен "C:\Users\Сергей\Desktop\Дарья\Новая папка\Новая папка\Lab1\Debug\Lab1.exe", Cимволы загружены.
"Lab1.exe" (Управляемый (v4.0.30319)): Загружен "C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Windows.Forms\v4.0_4.0.0.0__b77a5c561934e089\System.Windows.Forms.dll"
"Lab1.exe" (Управляемый (v4.0.30319)): Загружен "C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Drawing\v4.0_4.0.0.0__b03f5f7f11d50a3a\System.Drawing.dll"
"Lab1.exe" (Управляемый (v4.0.30319)): Загружен "C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System\v4.0_4.0.0.0__b77a5c561934e089\System.dll"
"Lab1.exe" (Управляемый (v4.0.30319)): Загружен "C:\Windows\Microsoft.Net\assembly\GAC_MSIL\mscorlib.resources\v4.0_4.0.0.0_ru_b77a5c561934e089\mscorlib.resources.dll"
Первый этап обработки исключения типа "System.ArgumentOutOfRangeException" в приложении mscorlib.dll
Необработанное исключение типа "System.ArgumentOutOfRangeException" произошло в mscorlib.dll

Дополнительные сведения: Индекс и длина должны указывать на позицию в строке.

Программа "[3696] Lab1.exe: Управляемый (v4.0.30319)" завершилась с кодом 0 (0x0).
74K
27 февраля 2013 года
darya17
21 / / 18.02.2013
Цитата: ellor!
Во-первых, в цикле условие

либо
 
Код:
i < listBox1->Items->Count
, либо
 
Код:
i <= listBox1->Items->Count - 1
Вместо "str->Substring" тогда уж "str->Contains" использовать.




спасибо, работает. только все таки интересно почему с substring не работает...

86K
28 февраля 2013 года
DIAMON
11 / / 27.02.2013
Substring скорее всего ругался на длину, передаваемую через textBox1->Text->Length
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог