Поиск по записям в ListView

Язык Visual Basic на платформе .NET.

Модераторы: Ramzes, Sebas

partyzone
Начинающий
Начинающий
Аватара пользователя
 
Сообщения: 20
Зарегистрирован: 17.05.2006 (Ср) 7:15
Откуда: ЮС

Поиск по записям в ListView

Сообщение partyzone » 17.05.2006 (Ср) 9:09

Делаю "поиск" по ListView. Нужно сделать учет регистра символов. Как сделать, никто не знает?
Последний раз редактировалось partyzone 18.05.2006 (Чт) 8:57, всего редактировалось 1 раз.

Twister
Теоретик
Теоретик
Аватара пользователя
 
Сообщения: 2251
Зарегистрирован: 28.06.2005 (Вт) 12:32
Откуда: Алматы

Сообщение Twister » 17.05.2006 (Ср) 9:12

Знает... А если подумать?
А я все практикую лечение травами...

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Сообщение Viper » 17.05.2006 (Ср) 9:14

А чем поиск по ListView отличается от любого другого поиска? Просто учитывай регистр и все, Код для символа "А" не равен коду для символа "а"
Весь мир матрица, а мы в нем потоки байтов!

partyzone
Начинающий
Начинающий
Аватара пользователя
 
Сообщения: 20
Зарегистрирован: 17.05.2006 (Ср) 7:15
Откуда: ЮС

Сообщение partyzone » 17.05.2006 (Ср) 9:15

Понимаю, что ничем. Меня интересует именно принцип учета регистра. Примерчик бы... =)

Twister
Теоретик
Теоретик
Аватара пользователя
 
Сообщения: 2251
Зарегистрирован: 28.06.2005 (Вт) 12:32
Откуда: Алматы

Сообщение Twister » 17.05.2006 (Ср) 9:19

именно принцип учета регистра

:roll:
Разные символы имеют разные коды...
А я все практикую лечение травами...

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Re: Регистр

Сообщение Viper » 17.05.2006 (Ср) 9:19

partyzone писал(а):Делаю "поиск"


а сколько сделано то? Где вылезла проблема?
Весь мир матрица, а мы в нем потоки байтов!

partyzone
Начинающий
Начинающий
Аватара пользователя
 
Сообщения: 20
Зарегистрирован: 17.05.2006 (Ср) 7:15
Откуда: ЮС

Сообщение partyzone » 17.05.2006 (Ср) 9:21

Сделано, в общем-то, все. НО! Поиск происходит только С учетом регистра. А надо БЕЗ.

Twister
Теоретик
Теоретик
Аватара пользователя
 
Сообщения: 2251
Зарегистрирован: 28.06.2005 (Вт) 12:32
Откуда: Алматы

Сообщение Twister » 17.05.2006 (Ср) 9:22

Поиск происходит только С учетом регистра. А надо БЕЗ

Перед сравнением строк преобразуй строки с помощью UCase...
А я все практикую лечение травами...

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Сообщение Viper » 17.05.2006 (Ср) 9:27

приплыли... начали с одного "как учесть регистр", а закончили тем, чтоего надо как раз не учесть.... Мдя©.... :D
Весь мир матрица, а мы в нем потоки байтов!

partyzone
Начинающий
Начинающий
Аватара пользователя
 
Сообщения: 20
Зарегистрирован: 17.05.2006 (Ср) 7:15
Откуда: ЮС

Сообщение partyzone » 17.05.2006 (Ср) 9:30

В общем, если пользователь хочет учесть, пусть учитываает, а по умолчанию - не учитывать. Вот.

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Сообщение Viper » 17.05.2006 (Ср) 9:37

Логично... Пользователь должен высказать свое желание. Но это вопрос или утверждение?
Весь мир матрица, а мы в нем потоки байтов!

partyzone
Начинающий
Начинающий
Аватара пользователя
 
Сообщения: 20
Зарегистрирован: 17.05.2006 (Ср) 7:15
Откуда: ЮС

Сообщение partyzone » 17.05.2006 (Ср) 9:39

Утверждение по факту.
А по сути - вопрос. В том смысле, как это сделать?

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Сообщение Viper » 17.05.2006 (Ср) 9:42

Видимо где-то нужно пользователя спросить. Либо в MessageBox, либо где-то в опциях поиска нужно предоставить CheckBox. Далее в процедуре поиска проверяем установлен ли CheckBox и делаем поиск с учетом регистра, либо нет. Во втором случае используем UCase (или LCase, неважно). Вот краткий алгоритм
Весь мир матрица, а мы в нем потоки байтов!

partyzone
Начинающий
Начинающий
Аватара пользователя
 
Сообщения: 20
Зарегистрирован: 17.05.2006 (Ср) 7:15
Откуда: ЮС

Сообщение partyzone » 17.05.2006 (Ср) 9:45

Спасибо! Дальше, думаю, разберусь.

partyzone
Начинающий
Начинающий
Аватара пользователя
 
Сообщения: 20
Зарегистрирован: 17.05.2006 (Ср) 7:15
Откуда: ЮС

Сообщение partyzone » 17.05.2006 (Ср) 10:02

Ну вот, все готово! Спасибо вам, ребята!

partyzone
Начинающий
Начинающий
Аватара пользователя
 
Сообщения: 20
Зарегистрирован: 17.05.2006 (Ср) 7:15
Откуда: ЮС

Сообщение partyzone » 18.05.2006 (Чт) 8:26

ТовариЩи! В продолжение разговора о поиске...

У меня поиск находится на новой форме. А когда я пытаюсь делать поиск по ListView, который находится на основной форме - вылазит ошибка: Specified cast is not valid. Хотя все. вроде, объявлено...

Код: Выделить всё
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        mainform = Form1.ActiveForm
        Dim li As ListViewItem
        Dim k As Integer
        For Each li In mainform.Table.Items
            'код поиска
        Next
    End Sub

Чего делать?

Nicky
Постоялец
Постоялец
 
Сообщения: 519
Зарегистрирован: 12.08.2004 (Чт) 12:14

Сообщение Nicky » 18.05.2006 (Чт) 8:51

partyzone писал(а):Чего делать?

Писать в нужный форум

partyzone
Начинающий
Начинающий
Аватара пользователя
 
Сообщения: 20
Зарегистрирован: 17.05.2006 (Ср) 7:15
Откуда: ЮС

Сообщение partyzone » 18.05.2006 (Чт) 8:55

Это, конечно, дельный совет... Спасибо! И который же нужный? :arrow:

Nicky
Постоялец
Постоялец
 
Сообщения: 519
Зарегистрирован: 12.08.2004 (Чт) 12:14

Сообщение Nicky » 18.05.2006 (Чт) 9:11


partyzone
Начинающий
Начинающий
Аватара пользователя
 
Сообщения: 20
Зарегистрирован: 17.05.2006 (Ср) 7:15
Откуда: ЮС

Сообщение partyzone » 18.05.2006 (Чт) 9:18

какая хрен разница!?
Я - новичок? Новичок!
Тема о VB? О VB!
Так почему же мне, ..., не написать то, что я хочу спросить, ЗДЕСЬ?

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Сообщение Viper » 18.05.2006 (Чт) 9:20

Надо полагать ошибка здесь:
partyzone писал(а):
Код: Выделить всё
mainform = Form1.ActiveForm
       


или нет?
Если да, то надо использовать CType

З.Ы. Топик целиком наверное не следует переносить, но раз уж речь пошла о VB.NET, то видимо стоит начать новую тему, тем более что речь уже не идет о поиске

З.З.Ы. VB<>VB.NET, так что лучше в VB.NET писать
Весь мир матрица, а мы в нем потоки байтов!

partyzone
Начинающий
Начинающий
Аватара пользователя
 
Сообщения: 20
Зарегистрирован: 17.05.2006 (Ср) 7:15
Откуда: ЮС

Сообщение partyzone » 18.05.2006 (Чт) 9:25

Да, ошибка именно там.
А CType - куда? Можно примерчик? =)

Да чего уже заводить-то. Я чувствую, что скоро проблема разрешится... :))

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Сообщение Viper » 18.05.2006 (Чт) 9:31

Код: Выделить всё
mainform = CType(Form1.ActiveForm, frmMain)


Здесь вместо frmMain пишешь имя класса, который имеет твоя главная форма (т.е. та в которой у тебя ListView)
Весь мир матрица, а мы в нем потоки байтов!

partyzone
Начинающий
Начинающий
Аватара пользователя
 
Сообщения: 20
Зарегистрирован: 17.05.2006 (Ср) 7:15
Откуда: ЮС

Сообщение partyzone » 18.05.2006 (Чт) 9:34

А не подскажешь, из-за чего в одном случае нужно писать то. что ты сказал, а в другом (уже другая форма) работает и так, как было у меня?

partyzone
Начинающий
Начинающий
Аватара пользователя
 
Сообщения: 20
Зарегистрирован: 17.05.2006 (Ср) 7:15
Откуда: ЮС

Сообщение partyzone » 18.05.2006 (Чт) 9:38

знаешь... не помогло.
та же ошибка...

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Сообщение Viper » 18.05.2006 (Чт) 9:41

А что в данном случае ActiveForm? Боюсь, что это как раз та форма, в которой ты организовываешь поиск, а не форма, содержащая ListView. Передавай в процедуру ссылку на форму.
Весь мир матрица, а мы в нем потоки байтов!

partyzone
Начинающий
Начинающий
Аватара пользователя
 
Сообщения: 20
Зарегистрирован: 17.05.2006 (Ср) 7:15
Откуда: ЮС

Сообщение partyzone » 18.05.2006 (Чт) 9:46

Нет! ListView у меня находится на форме с именем Form1. Поиск происходит на форме с именем Form6.
В самом начале Form6 я объявил
Код: Выделить всё
Dim mainform As Form1

Разве что-то неправильно?

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Сообщение Viper » 18.05.2006 (Чт) 9:59

Про что и речь. У тебя ActiveForm имеет тип Form6, а ты его пытаешься преобразовать в Form1, что естественно вызывает ошибку.

Чтобы в этом убедиться напиши строчку:

Debug.WriteLine Form1.ActiveForm.GetType.Name
Весь мир матрица, а мы в нем потоки байтов!

partyzone
Начинающий
Начинающий
Аватара пользователя
 
Сообщения: 20
Зарегистрирован: 17.05.2006 (Ср) 7:15
Откуда: ЮС

Сообщение partyzone » 18.05.2006 (Чт) 10:03

Да уж... :? И как же тогда сделать?

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Сообщение Viper » 18.05.2006 (Чт) 10:09

!Viper! писал(а):Передавай в процедуру ссылку на форму.


т.е. ссылку на экземпляр формы Form1
Весь мир матрица, а мы в нем потоки байтов!

След.

Вернуться в Visual Basic .NET

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 69

    TopList  
cron