Íàâèãàöèÿ â ListBox ñî ñâÿçíûì âûáîðîì
|
|
Âòîðíèê, 11 Îêòÿáðÿ 2016 ã. 22:58
+ â öèòàòíèê
Äîáðîãî âðåìåíè ñóòîê.
Çíà÷èò, ñèòóàöèÿ ñëåäóþùàÿ. Äëÿ ðàáîòû ñ çàïèñÿìè èñïîëüçóþ ListBox'û (òèï èñòî÷íèêà ñòðîê - ñïèñîê çíà÷åíèé ñ ðó÷íîé çàãðóçêîé ñîîòâ. äàííûõ). Äëÿ óäîáñòâà ýêñïîðòà â Excel ðåøèë ñîîòâ. ListBox'û ñäåëàòü ñî ñâÿçíûì âûáîðîì - ÷òîáû èç äàííîãî êîíêðåòíîãî ListBox'à ýêñïîðòèðîâàòü òîëüêî íóæíûå çàïèñè. È âîò òóò âîçíèêëà ïðîáëåìà ñ íàâèãàöèåé.
Äëÿ ðåäàêòèðîâàíèÿ/óäàëåíèÿ çàïèñè, îòîáðàæåíèÿ åå äî÷åðíèõ çàïèñåé íóæíî, ÷òîáû â ListBox'å áûëà âûäåëåíà òîëüêî îäíà ñòðîêà. Ýòî ïðîâåðÿåòñÿ ïðîñòî:
If List.ItemsSelected.count <> 1 Then
Exit Sub
End If
Äàëåå. Åñëè ýëåìåíò ñïèñêà âûäåëåí ùåë÷êîì ìûøè, òî äëÿ åãî îïðåäåëåíèÿ âïîëíå ðàáîòîñïîñîáåí ñëåäóþùèé êîä:
Dim xxx As Long
xxx = List.ItemsSelected.Item(0)
À âîò åñëè ÿ ïåðåìåùàþñü ïî ñïèñêó íàæàòèåì ñòðåëîê "ââåðõ" è "âíèç" íà êëàâèàòóðå è â List_AfterUpdate õî÷ó îòðåàãèðîâàòü íà èçìåíåíèå âûáðàííîãî ýëåìåíòà, òî óêàçàííûé âûøå êîä íå ðàáîòàåò. Òî÷íåå, ïðè î÷åðåäíîì âûçîâå êîä âîçâðàùàåò èíäåêñ òîãî ýëåìåíòà, êîòîðûé áûë âûäåëåí â ïðîøëûé ðàç, äî ïîñëåäíåãî íàæàòèÿ êëàâèø "ââåðõ" èëè "âíèç".
Ñ äðóãîé ñòîðîíû, åñëè ÿ óäàëèë âûäåëåííûé ýëåìåíò ñïèñêà è ïðîãðàììíî çàäàë èíäåêñ íîâîãî âûäåëåííîãî ýëåìåíòà, òî ñ íèì êîä ðàáîòàåò íîðìàëüíî.
 êà÷åñòâå ïðèìåðà ïðèëàãàþ íåáîëüøóþ ÁÄ ñ îäíîé ôîðìîé ñ îïèñàííûìè âûøå ôóíêöèÿìè.
Íå ïîäñêàæåòå, êàê ïîáîðîòü ïðîáëåìó? Áóäó êðàéíå áëàãîäàðåí.
http://www.sql.ru/forum/1234252/navigaciya-v-listbox-so-svyaznym-vyborom
-
Çàïèñü ïîíðàâèëàñü
-
0
Ïðîöèòèðîâàëè
-
0
Ñîõðàíèëè
-