Jump to content

Auto scroll to last item in Listview


lyledg
 Share

Recommended Posts

Hey guys

I have been searching, but not sure how to do the following:

I know about this from the helpfile, but it does not seem to work for me

#Include <GuiListView.au3>
_GUICtrlListView_Scroll($hWnd, $iDX, $iDY)

I need the last item in the Listview selected

Any ideas?

Cheers

Link to comment
Share on other sites

Hi,

#include <GuiConstants.au3>
#include <GuiListView.au3>

Opt ('MustDeclareVars', 1)
Dim $listview, $Btn, $msg, $Status
GUICreate("ListView Get Item Count", 392, 322)

$listview = GUICtrlCreateListView("col1|col2|col3", 40, 30, 310, 149, BitOR($LVS_SINGLESEL, $LVS_SHOWSELALWAYS, $LVS_NOSORTHEADER))
_GUICtrlListViewSetColumnWidth($listview, 0, 80) 
For $i = 1 To 1000
    GUICtrlCreateListViewItem("Line " & $i & "|Data " & $i & "|More " & $i, $listview)
Next    
$Btn = GUICtrlCreateButton("Scroll to last line", 126, 260, 140, 30)
$Status = GUICtrlCreateLabel("Item Count: " & _GUICtrlListViewGetItemCount ($listview), 0, 302, 392, 20, BitOR($SS_SUNKEN, $SS_CENTER))
GUISetState()

While 1
    $msg = GUIGetMsg()
    Select
        Case $msg = $GUI_EVENT_CLOSE
            Exit
        Case $msg = $Btn
            _GUICtrlListViewSetItemSelState($listview, _GUICtrlListViewGetItemCount ($listview) -1, 1, 1)
            _GUICtrlListViewScroll($listview, 0, (_GUICtrlListViewGetItemCount ($listview) -1) * 14)
            GUICtrlSetState($listview, $GUI_FOCUS)
    EndSelect
WEnd

Cheers

Edited by smashly
Link to comment
Share on other sites

  • 2 weeks later...

how would I be able to scroll up a line at a time and still keep the focus of the line selected?

Like this?

#include <GuiConstants.au3>
#include <GuiListView.au3>

Opt ('MustDeclareVars', 1)
Dim $listview, $Btn, $msg, $Status
GUICreate("ListView Get Item Count", 392, 322)

$listview = GUICtrlCreateListView("col1|col2|col3", 40, 30, 310, 149, BitOR($LVS_SINGLESEL, $LVS_SHOWSELALWAYS, $LVS_NOSORTHEADER))
_GUICtrlListViewSetColumnWidth($listview, 0, 80) 
For $i = 1 To 1000
    GUICtrlCreateListViewItem("Line " & $i & "|Data " & $i & "|More " & $i, $listview)
Next    
$Btn = GUICtrlCreateButton("Scroll one line", 126, 260, 140, 30)
$Status = GUICtrlCreateLabel("Item Count: " & _GUICtrlListViewGetItemCount ($listview), 0, 302, 392, 20, BitOR($SS_SUNKEN, $SS_CENTER))
GUISetState()

While 1
    $msg = GUIGetMsg()
    Select
        Case $msg = $GUI_EVENT_CLOSE
            Exit
        Case $msg = $Btn
            _GUICtrlListViewScroll($listview, 0, 15)
            GUICtrlSetState($listview, $GUI_FOCUS)
    EndSelect
WEnd

 

Spoiler

Using OS: Win 7 Professional, Using AutoIt Ver(s): 3.3.6.1 / 3.3.8.1

AutoIt_Rus_Community.png AutoIt Russian Community

My Work...

Spoiler

AutoIt_Icon_small.pngProjects: ATT - Application Translate Tool {new}| BlockIt - Block files & folders {new}| SIP - Selected Image Preview {new}| SISCABMAN - SciTE Abbreviations Manager {new}| AutoIt Path Switcher | AutoIt Menu for Opera! | YouTube Download Center! | Desktop Icons Restorator | Math Tasks | KeyBoard & Mouse Cleaner | CaptureIt - Capture Images Utility | CheckFileSize Program

AutoIt_Icon_small.pngUDFs: OnAutoItErrorRegister - Handle AutoIt critical errors {new}| AutoIt Syntax Highlight {new}| Opera Library! | Winamp Library | GetFolderToMenu | Custom_InputBox()! | _FileRun UDF | _CheckInput() UDF | _GUIInputSetOnlyNumbers() UDF | _FileGetValidName() UDF | _GUICtrlCreateRadioCBox UDF | _GuiCreateGrid() | _PathSplitByRegExp() | _GUICtrlListView_MoveItems - UDF | GUICtrlSetOnHover_UDF! | _ControlTab UDF! | _MouseSetOnEvent() UDF! | _ProcessListEx - UDF | GUICtrl_SetResizing - UDF! | Mod. for _IniString UDFs | _StringStripChars UDF | _ColorIsDarkShade UDF | _ColorConvertValue UDF | _GUICtrlTab_CoverBackground | CUI_App_UDF | _IncludeScripts UDF | _AutoIt3ExecuteCode | _DragList UDF | Mod. for _ListView_Progress | _ListView_SysLink | _GenerateRandomNumbers | _BlockInputEx | _IsPressedEx | OnAutoItExit Handler | _GUICtrlCreateTFLabel UDF | WinControlSetEvent UDF | Mod. for _DirGetSizeEx UDF
 
AutoIt_Icon_small.pngExamples: 
ScreenSaver Demo - Matrix included | Gui Drag Without pause the script | _WinAttach()! | Turn Off/On Monitor | ComboBox Handler Example | Mod. for "Thinking Box" | Cool "About" Box | TasksBar Imitation Demo

Like the Projects/UDFs/Examples? Please rate the topic (up-right corner of the post header: Rating AutoIt_Rating.gif)

* === My topics === *

==================================================
My_Userbar.gif
==================================================

 

 

 

AutoIt is simple, subtle, elegant. © AutoIt Team

Link to comment
Share on other sites

That's great mate , yes thanks, but one thing that I am still not able to work out is once the highlighted text moves out of the Listview border, how to autoscroll the listview to still see the highlighted text

Hopefully the attached images will help the explanation

post-2827-1193032126_thumb.jpg

post-2827-1193032131_thumb.jpg

Link to comment
Share on other sites

Thanks for the idea Gary, but I am still unable to get this working...

The selected item does not stay visible once the scroll function has moved it outside the border of the Listview

Any ideas or an example what would work, please mate?

Cheers

Link to comment
Share on other sites

Thanks for the idea Gary, but I am still unable to get this working...

The selected item does not stay visible once the scroll function has moved it outside the border of the Listview

Any ideas or an example what would work, please mate?

Cheers

If I'm understanding this correctly you want it to auto scroll but keep the one highlight item in view, not possible unless you keep moving the item to the end, for example, get the data, delete the record and add to the end of the listview and select it again.

SciTE for AutoItDirections for Submitting Standard UDFs

 

Don't argue with an idiot; people watching may not be able to tell the difference.

 

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...