Click here to Skip to main content
16,006,355 members
Home / Discussions / Visual Basic
   

Visual Basic

 
QuestionBenefits of .Net Pin
Chandan_Kr16-Mar-06 21:31
Chandan_Kr16-Mar-06 21:31 
AnswerRe: Benefits of .Net Pin
Dave Kreskowiak17-Mar-06 2:39
mveDave Kreskowiak17-Mar-06 2:39 
QuestionHow to tacke which object still using the image file? Pin
cylix200016-Mar-06 21:07
cylix200016-Mar-06 21:07 
AnswerRe: How to tacke which object still using the image file? Pin
Dave Kreskowiak17-Mar-06 2:37
mveDave Kreskowiak17-Mar-06 2:37 
Questionalternative for handles button1.click,.................. Pin
mamatharaghu16-Mar-06 18:12
mamatharaghu16-Mar-06 18:12 
AnswerRe: alternative for handles button1.click,.................. Pin
CWIZO16-Mar-06 20:56
CWIZO16-Mar-06 20:56 
Questiongenerating more than one dataset based upon parameter passed Pin
uglyeyes16-Mar-06 16:42
uglyeyes16-Mar-06 16:42 
QuestionIssue updating Listview via Thread Pin
mechman16-Mar-06 13:03
mechman16-Mar-06 13:03 
I have noticed in certain instances that updating data in a listview via a thread, is is not reflected in the UI, but the data is changed. The data is updated in a different thread using InvokeRequired ensuring thread safety. Here is a sample application:

Designer:
<global.microsoft.visualbasic.compilerservices.designergenerated()> _
Partial Class Form1
Inherits System.Windows.Forms.Form

'Form overrides dispose to clean up the component list.
<system.diagnostics.debuggernonusercode()> _
Protected Overrides Sub Dispose(ByVal disposing As Boolean)
If disposing AndAlso components IsNot Nothing Then
components.Dispose()
End If
MyBase.Dispose(disposing)
End Sub

'Required by the Windows Form Designer
Private components As System.ComponentModel.IContainer

'NOTE: The following procedure is required by the Windows Form Designer
'It can be modified using the Windows Form Designer.
'Do not modify it using the code editor.
<system.diagnostics.debuggerstepthrough()> _
Private Sub InitializeComponent()
Dim ListViewItem1 As System.Windows.Forms.ListViewItem = New System.Windows.Forms.ListViewItem(New String() {"Account1", "Inbox", ""}, -1)
Dim ListViewItem2 As System.Windows.Forms.ListViewItem = New System.Windows.Forms.ListViewItem(New String() {"Account2", "SentItems", ""}, -1)
Dim ListViewItem3 As System.Windows.Forms.ListViewItem = New System.Windows.Forms.ListViewItem(New String() {"Account3", "Help", ""}, -1)
Dim ListViewItem4 As System.Windows.Forms.ListViewItem = New System.Windows.Forms.ListViewItem(New String() {"Account4", "Save", ""}, -1)
Dim ListViewItem5 As System.Windows.Forms.ListViewItem = New System.Windows.Forms.ListViewItem(New String() {"Account5", "Drafts", ""}, -1)
Me.ListView1 = New System.Windows.Forms.ListView
Me.ColumnHeader1 = New System.Windows.Forms.ColumnHeader
Me.ColumnHeader2 = New System.Windows.Forms.ColumnHeader
Me.ColumnHeader3 = New System.Windows.Forms.ColumnHeader
Me.SuspendLayout()
'
'ListView1
'
Me.ListView1.Columns.AddRange(New System.Windows.Forms.ColumnHeader() {Me.ColumnHeader1, Me.ColumnHeader2, Me.ColumnHeader3})
Me.ListView1.FullRowSelect = True
Me.ListView1.Items.AddRange(New System.Windows.Forms.ListViewItem() {ListViewItem1, ListViewItem2, ListViewItem3, ListViewItem4, ListViewItem5})
Me.ListView1.Location = New System.Drawing.Point(12, 12)
Me.ListView1.Name = "ListView1"
Me.ListView1.Size = New System.Drawing.Size(268, 159)
Me.ListView1.TabIndex = 1
Me.ListView1.UseCompatibleStateImageBehavior = False
Me.ListView1.View = System.Windows.Forms.View.Details
'
'ColumnHeader1
'
Me.ColumnHeader1.Text = "Account"
'
'ColumnHeader2
'
Me.ColumnHeader2.Text = "Folder"
Me.ColumnHeader2.Width = 78
'
'ColumnHeader3
'
Me.ColumnHeader3.Text = "Msg"
Me.ColumnHeader3.Width = 96
'
'Form1
'
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
Me.ClientSize = New System.Drawing.Size(292, 181)
Me.Controls.Add(Me.ListView1)
Me.Name = "Form1"
Me.Text = "Form1"
Me.ResumeLayout(False)

End Sub
Friend WithEvents ListView1 As System.Windows.Forms.ListView
Friend WithEvents ColumnHeader1 As System.Windows.Forms.ColumnHeader
Friend WithEvents ColumnHeader2 As System.Windows.Forms.ColumnHeader
Friend WithEvents ColumnHeader3 As System.Windows.Forms.ColumnHeader

End Class

FormCode:

Imports System
Imports System.ComponentModel
Imports System.Threading
Imports System.Windows.Forms

Public Class Form1

Delegate Sub lvwCallback(ByVal iIndex As Integer, ByVal [text] As String)

Private lCnt1 As Integer = 0, lCnt2 As Integer = 0, lCnt3 As Integer = 0
Private lMainID As Integer = Thread.CurrentThread.ManagedThreadId

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

Test.TestUpdate()

End Sub

Public Sub SetTextLvw(ByVal iIndex As Integer, ByVal [text] As String)

Debug.Print("Main:" & lMainID & "-Current:" & Thread.CurrentThread.ManagedThreadId.ToString & "-Form:" & Me.InvokeRequired & "-" & "ListView:" & Me.InvokeRequired)
If Me.ListView1.InvokeRequired Then
Dim d As New lvwCallback(AddressOf SetTextLvw)
'Me.Invoke(d, New Object() {iIndex, [text]})
Me.ListView1.Invoke(d, New Object() {iIndex, [text]})
Else
Me.ListView1.Items(iIndex).SubItems(2).Text = [text]
Debug.WriteLine("Text:" & ListView1.Items(iIndex).SubItems(0).Text & "-" & ListView1.Items(iIndex).SubItems(2).Text)
Me.ListView1.Update()
Me.ListView1.Refresh()
End If

End Sub

End Class

Public Module Test

Dim lCnt As Integer
Private oTimer As New Timers.Timer(180)

Public Sub TestUpdate()

AddHandler oTimer.Elapsed, AddressOf sTimer
oTimer.Start()

End Sub

Private Sub sTimer(ByVal sender As Object, ByVal e As System.Timers.ElapsedEventArgs)

lCnt += 1
Form1.SetTextLvw(3, "Timer:" & lCnt)

End Sub

End Module


Can anyone help?
AnswerRe: Issue updating Listview via Thread Pin
Dave Kreskowiak17-Mar-06 1:47
mveDave Kreskowiak17-Mar-06 1:47 
GeneralRe: Issue updating Listview via Thread Pin
mechman17-Mar-06 3:14
mechman17-Mar-06 3:14 
GeneralRe: Issue updating Listview via Thread Pin
mechman17-Mar-06 3:17
mechman17-Mar-06 3:17 
GeneralRe: Issue updating Listview via Thread Pin
Dave Kreskowiak17-Mar-06 7:25
mveDave Kreskowiak17-Mar-06 7:25 
GeneralRe: Issue updating Listview via Thread Pin
mechman17-Mar-06 7:53
mechman17-Mar-06 7:53 
GeneralRe: Issue updating Listview via Thread Pin
Dave Kreskowiak17-Mar-06 12:37
mveDave Kreskowiak17-Mar-06 12:37 
GeneralRe: Issue updating Listview via Thread Pin
mechman18-Mar-06 6:04
mechman18-Mar-06 6:04 
GeneralRe: Issue updating Listview via Thread Pin
Dave Kreskowiak18-Mar-06 6:24
mveDave Kreskowiak18-Mar-06 6:24 
GeneralRe: Issue updating Listview via Thread Pin
mechman19-Mar-06 7:30
mechman19-Mar-06 7:30 
GeneralRe: Issue updating Listview via Thread Pin
Dave Kreskowiak19-Mar-06 14:22
mveDave Kreskowiak19-Mar-06 14:22 
GeneralRe: Issue updating Listview via Thread Pin
mechman19-Mar-06 14:27
mechman19-Mar-06 14:27 
GeneralRe: Issue updating Listview via Thread Pin
Dave Kreskowiak19-Mar-06 16:51
mveDave Kreskowiak19-Mar-06 16:51 
GeneralRe: Issue updating Listview via Thread Pin
mechman19-Mar-06 18:05
mechman19-Mar-06 18:05 
GeneralRe: Issue updating Listview via Thread Pin
Dave Kreskowiak20-Mar-06 2:48
mveDave Kreskowiak20-Mar-06 2:48 
QuestionMaking a grid on a MDI form or regular form Pin
Quecumber25616-Mar-06 9:03
Quecumber25616-Mar-06 9:03 
Questionhow can i capture printer's jobs Pin
fahad ahsan16-Mar-06 7:34
fahad ahsan16-Mar-06 7:34 
AnswerRe: how can i capture printer's jobs Pin
progload16-Mar-06 7:56
progload16-Mar-06 7:56 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.