Страница: 1 | 
		
		 
			   
			 
			 
			 
			 Страница: 1 | 
 
			
 
  
		
     
  
    
Вопрос: MSFlexGrid - поиск и переход к строке
     
    
Добавлено: 27.12.06 14:03
     
      
  
				
			  
					 
			
				 
    
		
       
    
Автор вопроса:  
     vic | Web-сайт: uproshenka.tamb.ru
 vic | Web-сайт: uproshenka.tamb.ru
      
       
  
Скажите, как в MSFlexGrid (VB6) перейти к определенной строке с ее выделением? И еще есть ли в FlexGrid встроенные средства для поиска? То что я делаю наверное неправильно:
 
    
Dim vstr As Long 'всего строк
Dim SearchChar As String 'что ищем
Dim SearchString As String 'где ищем
SearchChar = cboEngSN.Text 'образец для поиска
vstr = FG1.Rows - 1 'количество строк
For zk = 1 To vstr
SearchString = FG1.TextArray(2 + (zk * 7)) 'перебираем ячейки второго столбца
If InStr(SearchString, SearchChar) <> 0 Then
MsgBox zk 'Ура нашли! НО ВОТ КАК ПЕРЕЙТИ К НАЙДЕННОЙ СТРОКЕ С ВЫДЕЛЕНИЕМ ЕЕ?
Exit Sub
End If
Next
				
		
		
					 
			
				 
  
		
     
  
    
Ответы
     
    
Всего ответов: 8
     
      
  
		
	  
			 
	
		 
    
       
    
Номер ответа: 1 
      
Автор ответа: avdey
 avdey





ICQ: 219571279 
Вопросов: 34
Ответов: 486
      
 Профиль |  | #1
       
Добавлено:  27.12.06 14:52
       
    
       
  
 
    
И попробуй в свойствах SelectionMode поставь SelectionByRow...
		
	  
			 
	
		 
    
       
    
Номер ответа: 2 
      
Автор ответа: vic
 vic




Вопросов: 2
Ответов: 4
      
 Web-сайт:  
 Профиль |  | #2
      
Добавлено:  27.12.06 17:01
       
    
       
  
Я так уже пробовал - выделение вообще пропадает.
 
    
		
	  
			 
	
		 
    
       
    
Номер ответа: 3 
      
Автор ответа: avdey
 avdey





ICQ: 219571279 
Вопросов: 34
Ответов: 486
      
 Профиль |  | #3
       
Добавлено:  28.12.06 07:58
       
    
       
  
Оно не пропадает. Когда в Экселе выделяешь много ячеек они все синие, кроме одной, но она тоже выделена, хотя и не синяя. Вот и в этой таблице такая же штука...
 
    
Попробуй добавь этот код:
    Const KEYEVENTF_KEYUP As Short = &H2S 'событие отпускания клавиши
    Const VK_DOWN As Short = &H28S
И вот так:
Call keybd_event(VK_DOWN, 0, 0, 0)
Call keybd_event(VK_DOWN, 0, KEYEVENTF_KEYUP, 0)
Exit For
		
	  
			 
	
		 
    
       
    
Номер ответа: 4 
      
Автор ответа: vic
 vic




Вопросов: 2
Ответов: 4
      
 Web-сайт:  
 Профиль |  | #4
      
Добавлено:  28.12.06 09:44
       
    
       
  
Константы у меня VB6 не принимает... Это не NET синтаксис?
 
    
		
	  
			 
	
		 
    
       
    
Номер ответа: 5 
      
Автор ответа: Djon
 Djon





Вопросов: 61
Ответов: 471
      
 Web-сайт:  
 Профиль |  | #5
      
Добавлено:  28.12.06 09:59
       
    
       
  
А что в VB используют Short?
 
    
		
	  
			 
	
		 
    
       
    
Номер ответа: 6 
      
Автор ответа: vic
 vic




Вопросов: 2
Ответов: 4
      
 Web-сайт:  
 Профиль |  | #6
      
Добавлено:  28.12.06 11:37
       
    
       
  
Как бы вышеприведенный код на NET перевести на VB?
 
    
		
	  
			 
	
		 
    
       
    
Номер ответа: 7 
      
Автор ответа: avdey
 avdey





ICQ: 219571279 
Вопросов: 34
Ответов: 486
      
 Профиль |  | #7
       
Добавлено:  29.12.06 14:25
       
    
       
  
Мда, попутал...
 
    
вот попробуй на 6 басике:
Const KEYEVENTF_KEYUP = &H2 'ñîáûòèå îòïóñêàíèÿ êëàâèøè
Const VK_DOWN = &H28
		
	  
			 
	
		 
    
       
    
Номер ответа: 8 
      
Автор ответа: avdey
 avdey





ICQ: 219571279 
Вопросов: 34
Ответов: 486
      
 Профиль |  | #8
       
Добавлено:  29.12.06 14:26
       
    
       
  
Зеленое не копируй.