Più volte sui forum ho visto questa domanda .... come faccio in un controllo ListView a "scrollare" sull'ultimo item inserito ?
Ebbene io penso che si debba ricorrere ancora una volta al buon PINVOKE :
- Importiamo la SendMessage per poter inviare un messaggio al controllo ListView
[DllImport("User32.dll")]
private static extern bool SendMessage(IntPtr hwnd, UInt32 msg, UInt32 wParam, UInt32 lParam);
- definiamo due costanti, rispettivamente il WM_SCROLL e SB_BOTTOM
const System.Int32 WM_VSCROLL = 0x115;
const System.Int32 SB_BOTTOM = 0x7;
- inviamo al controllo ListView (disponendo della sua handle) il messaggio corretto
SendMessage(listView1.Handle, WM_VSCROLL, SB_BOTTOM , 0);
Mi piacerebbe essere contraddetto da qualcuno ... se qualcuno trovasse una soluzione senza passare attraverso PINVOKE !
La smentita è arrivata .... è proprio un periodaccio per me !
Bastava il metodo EnsureVisible ..........
come riportato in questo post :
http://www.ugidotnet.org/forum/default.asp?m=26433
Vorrei segnalare agli interessati che il corso sulle basi di ADO.NET è arrivato alla quarta
lezione.
Di seguito i titoli delle varie lezioni :
Lezione 1 : Premesse
Lezione 2 : Connessione al database
Lezione 3 : Esecuzione di query nel database
Lezione 4 : Utilizzo del DataAdpter per il recupero dei dati
http://www.visualcsharp.it/corsoadonet/1.asp
Come più volte suggerito sul forum come risposta alla domanda "Come faccio ad accedere ad un membro di una form da qualsiasi altra parte" cerco di implementare il design pattern "Singleton" per una WindowsForm.
1) Creare una Sub Main in un modulo di modo che la creazione della form avvenga dal modulo :
Sub Main()
Application.Run(New Form1)
End Sub
2) Aggiungere alla form un membro condiviso :
Private Shared instance As Form1
3) Aggiungere una function alla form che sia in grado di ritornare l'istanza della form se già stata creata :
Public Shared Function InstanceObject() As Form1
If (instance Is Nothing) Then
instance = New Form1
End If
Return instance
End Function
4) Nel costruttore della form dopo la InitializeComponent salvare l'istanza sul membro condiviso :
instance = Me
Fatto questo, da un'altra form o comunque da qualsiasi altra parte del codice per accedere ai membri/metodi/proprietà d'istanza della form è sufficiente scrivere qualcosa di simile :
Form1.InstanceObject.Label1.Visible = False
Vorrei segnalare l'inizio di un'attività che prevede la realizzazione di un corso sulle basi di ADO.NET :
http://www.visualcsharp.it/corsoadonet/1.asp
Il mio primo blog : vorrei fare i miei complimenti a Raffaele per il favoloso articolo sul GC !