Jump to content
Sign in to follow this  
lyledg

Auto scroll to last item in Listview

Recommended Posts

lyledg

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

Share this post


Link to post
Share on other sites
smashly

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

Share this post


Link to post
Share on other sites
lyledg

Thanks buddy, that pointed me in the right direction..!

:)

Share this post


Link to post
Share on other sites
smashly

Your welcome,

Always happy to help a fellow aussie AutoIt'r

:)

Share this post


Link to post
Share on other sites
lyledg

Hey guys

Just one more question on this example, how would I be able to scroll up a line at a time and still keep the focus of the line selected?

Cheers

Share this post


Link to post
Share on other sites
MrCreatoR

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

Share this post


Link to post
Share on other sites
lyledg

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

Share this post


Link to post
Share on other sites
lyledg

^ bump

Share this post


Link to post
Share on other sites
lyledg

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

Share this post


Link to post
Share on other sites
DirtDBaK

i had a similar problem months ago but i dropped the project due to that and some other issues.... I'd like to see the fix...


[center][/center]

Share this post


Link to post
Share on other sites
GaryFrost

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.

 

Share this post


Link to post
Share on other sites
lyledg

Yep, Gary you've hit the nail on the head..

I will give it a try..

Share this post


Link to post
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
Sign in to follow this  

×