• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 503
  • Last Modified:

Processing Please Wait Form: While routine is running

vb.net 2003

What I have:

I have a form called
frmWait

Label called  lblMessage

What I need:
While I'am running routines in my code. I want to be able to call this form. display it. Sort of like a progress bar. Saying..."Processing please wait" ....
and a bonus having  the dots go back and forth ....    ...   .    .... ..   .   etc  
When the routine is done:
frmWait  closes.

Thanks
fordraiders



0
Fordraiders
Asked:
Fordraiders
  • 3
  • 3
  • 2
  • +1
2 Solutions
 
K VDatabase ConsultantCommented:
in your process
dim obj as frmwait = new frmwait
obj.showdialog


on form_load
1) you can place a GIF for ... on a label
2) manually use timer control to handle number of dots..
 eg. for timers each tick you can add a "." in lable's text.. and check if its crossing some prespecified number of dots!!
eg this will show 20 dots and start from 0 again...
                  if lblDots.text.length < 20
                           lblDots.text = lblDots.text & "."
                   else
                           lblDots.text = "."
                    end if
       
finally when ur process ends you just close the form
0
 
Jeff CertainCommented:
As theGhost menitioned, an animated GIF on a label sounds like it would fit your needs admirably.
0
 
Mike TomlinsonMiddle School Assistant TeacherCommented:
The success of this really depends on ~WHAT~ the "running routines" are doing.  You may have to move that code to another thread...

Can you give us more details?
0
What does it mean to be "Always On"?

Is your cloud always on? With an Always On cloud you won't have to worry about downtime for maintenance or software application code updates, ensuring that your bottom line isn't affected.

 
Jeff CertainCommented:
Mike,

You big sissy. He doesn't _have_ to use multi-threading. :P

Now, whether he _should_ or not is another story entirely.

However, I figured if he was throwing up a "wait" form, there was probably a bunch of processing going on that the user needs to wait on... (I know, I know... assumptions....)

Jeff
0
 
Mike TomlinsonMiddle School Assistant TeacherCommented:
Lol@Jeff...   ;)

I thought I had seen posts before where making callls to databases and what not have made animated GIFs stop animating...would have to check on that.  Blocking database calls would also stop the Form from processing Timer tick events as well.

If he just has some intensive loops then we can just throw Application.DoEvents() in there and "call it good".

Like I said, it just depends on what you're doing...but I never said anything was wrong with the previous posts!  =)
0
 
FordraidersAuthor Commented:
example loop:
looping through  10,000 records ....
 
Private Sub SnR()
              ' Using Access Database Search and Replace
        Dim conn As System.Data.OleDb.OleDbConnection
        Dim tblCriteria As New DataTable
        Dim tblData As New DataTable

        conn = New System.Data.OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\DM\Sku.mdb")
        'make dataadapters
        Dim dac As New System.Data.OleDb.OleDbDataAdapter("SELECT fldCid, fldFindMe, fldReplaceWith FROM tblCriteria", conn)
        Dim dad As New System.Data.OleDb.OleDbDataAdapter("SELECT fldID, fldDid, fldMfgname, fldMfrnum, fldDescription FROM tblData", conn)
        Dim cb As New System.Data.OleDb.OleDbCommandBuilder(dad)
        'get the datables from Access
        dac.Fill(tblCriteria)
        dad.Fill(tblData)
        'revise the data
        Me.Label18.Text = "Step 5 of 8 :Replacing Words"
        Me.Label18.Refresh()
        'send updated table back to Access
        For Each drc As DataRow In tblCriteria.Rows
            For Each drd As DataRow In tblData.Rows
                drd("fldDescription") = ReplaceWords(drd("fldDescription"), drc("fldFindMe"), drc("fldReplaceWith")) '<------- your procedure
            Next
        Next
        dad.Update(tblData)
         End Sub

to all
0
 
Mike TomlinsonMiddle School Assistant TeacherCommented:
Place "Application.DoEvents()" into your tight loop so you can update the label and allow it to repaint itself.

Using the approach presented by theGhost_k8:

        Dim fw As New frmWait
        fw.Show()
        Application.DoEvents()
        For Each drc As DataRow In tblCriteria.Rows
            For Each drd As DataRow In tblData.Rows
                drd("fldDescription") = ReplaceWords(drd("fldDescription"), drc("fldFindMe"), drc("fldReplaceWith"))
                If fw.lblMessage.Text.Length < 20 Then
                    fw.lblMessage.Text = fw.lblMessage.Text & "."
                Else
                    fw.lblMessage.Text = "."
                End if
                Application.DoEvents()
            Next
        Next
        fw.Close()
0
 
FordraidersAuthor Commented:
To All,   from
Ghost KB
1) you can place a GIF for ... on a label
2) manually use timer control to handle number of dots..
??  How to do this or example...
0
 
K VDatabase ConsultantCommented:
0
 
K VDatabase ConsultantCommented:
thnx 4 pts, but its not "Ghost KB"
its theGhost<UNDERSCORE>k8.
             ;)
0

Featured Post

Concerto's Cloud Advisory Services

Want to avoid the missteps to gaining all the benefits of the cloud? Learn more about the different assessment options from our Cloud Advisory team.

  • 3
  • 3
  • 2
  • +1
Tackle projects and never again get stuck behind a technical roadblock.
Join Now