﻿<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/"><channel><title>StrataFrame Forum » StrataFrame Application Framework - V1 » WinForms (How do I?)  » Keyboard behaviour with Listview Child form</title><generator>InstantForum 2017-1 Final</generator><description>StrataFrame Forum</description><link>http://forum.strataframe.net/</link><webMaster>StrataFrame Forum</webMaster><lastBuildDate>Mon, 04 May 2026 05:31:24 GMT</lastBuildDate><ttl>20</ttl><item><title>Keyboard behaviour with Listview Child form</title><link>http://forum.strataframe.net/FindPost30427.aspx</link><description>Hi,&lt;br/&gt;&lt;br/&gt;We are looking to redevelop a major application for a client and as part of a pilot project I have developed a maintenance form&amp;nbsp;that uses a listview with a child form. The users of our existing application are used to being able to do what they need via the keyboard&amp;nbsp;with minimal use of the mouse.&lt;br/&gt;&lt;br/&gt;I examined the Strataflix sample and developed the form using the same techniques as the Movie Database maintenance form. The problem&amp;nbsp;we have is if the user presses downarrow after successfully editing a child record they are positioned on the first record in the listview not the record below the highlighted record that has just been edited. &lt;br/&gt;&lt;br/&gt;This can be replicated in the Strataflix application as follows:&lt;br/&gt;&lt;br/&gt;1. Choose the Movie Database and select the Find a Movie option&lt;br/&gt;&lt;br/&gt;2. Enter "Gone with the Wind" in the browse dialogue, click search&amp;nbsp;and choose the first movie listed&lt;br/&gt;&lt;br/&gt;3. In the Cast Members list select &amp;nbsp;"Leigh, Vivien"&lt;br/&gt;&lt;br/&gt;4. Click edit&lt;br/&gt;&lt;br/&gt;5. Change the character name to "Scarlett O'Hara"&lt;br/&gt;&lt;br/&gt;6. Click OK - the listview is updated and Vivien Leigh is highlighted and displayed correctly&lt;br/&gt;&lt;br/&gt;7. Press downarrow&lt;br/&gt;&lt;br/&gt;8. The listview highlights the first record in the list not the record below Vivien Leigh.&lt;br/&gt;&lt;br/&gt;I suspect that the Listview is losing focus but have not&amp;nbsp;been able to&amp;nbsp;rectify the behaviour&amp;nbsp;- any suggestions appreciated,&lt;br/&gt;&lt;br/&gt;TIA&lt;br/&gt;&lt;br/&gt;Andy</description><pubDate>Fri, 14 Oct 2011 17:47:09 GMT</pubDate><dc:creator>Andrew Harper</dc:creator></item><item><title>RE: Keyboard behaviour with Listview Child form</title><link>http://forum.strataframe.net/FindPost30436.aspx</link><description>You're welcome, Andy.&lt;br/&gt;&lt;br/&gt;Glad I could help. &lt;img src="http://forum.strataframe.net/Skins/Classic/Images/EmotIcons/Cool.gif" alt="http://forum.strataframe.net/Skins/Classic/Images/EmotIcons/Cool.gif" /&gt;</description><pubDate>Fri, 14 Oct 2011 17:47:09 GMT</pubDate><dc:creator>Ivan George Borges</dc:creator></item><item><title>RE: Keyboard behaviour with Listview Child form</title><link>http://forum.strataframe.net/FindPost30435.aspx</link><description>Hi Ivan,&lt;br/&gt;&lt;br/&gt;Thanks for the prompt reponse - with some additional changes&amp;nbsp;I now have the listview&amp;nbsp;working correctly for add &amp;amp; delete as well as edit. &lt;br/&gt;&lt;br/&gt;Best regards and thanks,&lt;br/&gt;&lt;br/&gt;Andy</description><pubDate>Fri, 14 Oct 2011 17:32:01 GMT</pubDate><dc:creator>Andrew Harper</dc:creator></item><item><title>RE: Keyboard behaviour with Listview Child form</title><link>http://forum.strataframe.net/FindPost30428.aspx</link><description>Hi Andrew.&lt;br/&gt;&lt;br/&gt;First, create a Private Field to house the row index:&lt;br/&gt;&lt;br/&gt;[codesnippet]&amp;nbsp;&amp;nbsp;&amp;nbsp; Private _RowIndex As Integer = 0[/codesnippet]&lt;br/&gt;&lt;br/&gt;Then, in the lstCast_ChildFormResults, set the row index before the listview gets requeried:&lt;br/&gt;&lt;br/&gt;[codesnippet]&amp;nbsp;&amp;nbsp;&amp;nbsp; Private Sub lstCast_ChildFormResults(ByVal sender As System.Object, ByVal e As MicroFour.StrataFrame.UI.Windows.Forms.ListViewChildFormResultsEventArgs) Handles lstCast.ChildFormResults&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; If e.Results = Windows.Forms.DialogResult.Cancel Then&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MovieCast.RestoreCurrentDataTableSnapshot(False)&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Else&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _RowIndex = lstCast.FocusedItem.Index&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; e.Requery = True&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End If&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; End Sub[/codesnippet]&lt;br/&gt;&lt;br/&gt;Finally, add an AfterRequery event handler for the listview to reset the row index:&lt;br/&gt;&lt;br/&gt;[codesnippet]&amp;nbsp;&amp;nbsp;&amp;nbsp; Private Sub lstCast_AfterRequery() Handles lstCast.AfterRequery&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lstCast.Items(_RowIndex).Selected = True&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lstCast.Items(_RowIndex).Focused = True&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; End Sub[/codesnippet]&lt;br/&gt;&lt;br/&gt;Boa noite!&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&amp;nbsp;</description><pubDate>Thu, 13 Oct 2011 19:38:33 GMT</pubDate><dc:creator>Ivan George Borges</dc:creator></item></channel></rss>