Modify .net's BackgroundWorker Class So That It Fires A Custom Event Upon Method Completion?
Nov 16, 2011
I have a BackgroundWorker in a vb.net program that is doing a lengthy data import routine. I want to modify its RunWorkerAsync method so that it fires a custom event on completion of the method. (So that a method in an automated process can respond to the event and resume its work). In a sense I want to 'extend' the RunWorkerAsync method to add an extra line of code--but I can't 'see' the code in the method (to just add the line raising the event) because BackgroundWorker is an MSDN class from Microsoft.The only solution that I can think of is to 'wrap' the background worker class in a wrapper that calls the .RunWorkerAsync method and then raises the event.
Public sub wrapperMethod()
myBackgroundWorker.RunWorkerAsync()
raise customEvent
end sub
Is there a design pattern that I might use? An easy way to address this with the .net language?
PS: Unfortunately, I'm automating some clanking legacy software and backgroundworker is used in many locations, so wrapping the backgroundworker will be a bit of work and may open bugs.
View 1 Replies
ADVERTISEMENT
Mar 9, 2012
A form has many buttons. One of those buttons contains code to update the TableAdapterManager. One of the many TextBox controls has code in a Validating event handler. There is code to make sure a US phone number is formatted properly.If the user tabs out of the TextBox the Validating code works perfectly and show a message to the user if the phone number is not properly formatted and the focus is place in the offending TextBox.If the user clicks on a button that has code to update the TableAdapterManager the Validating code fires but instead of focus remaining on the offending TextBox, the code in the button Click handler also fires.
I would like to stop the button code from firing.Here is the code for the Validating event of the TextBox:
Private Sub TextBoxPrimaryPhone_Validating(ByVal sender As System.Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles TextBoxPrimaryPhone.Validating
' Make sure the phone is formatted correctly.
[code]....
What additional coding to I need to include so focus remains on the TextBox?
View 1 Replies
Oct 6, 2010
Let's say a custom exception is thrown in the DoWork event for a backgroundworker. How do I pass the custom exception to the backgroundworker so that it ends up being the e.Error in the RunWorkedCompletedEventArgs?
View 1 Replies
Mar 6, 2012
So, I got an SSD drive for my computer the other week, and decided to have a little fun. I wrote a program which starts every single program in the Windows Programs folder in the Start Menu, via clicking the "Go" button on my Form. It works beautifully. Only thing I would like to add to it is some sort of timer, which I have never tried in any programming language. I would basically like for a timer to be running, counting in real time (seconds), until my loop ends, and then display the total time taken at the end. I was thinking about setting a variable equal to the current time, before the loop starts, and then another equal to the time right after it ends, and then taking the difference of the two.
View 7 Replies
Aug 15, 2011
am writing a class that has the same name for events and method, but visual studion won't allow me
The event
public event Close()
the method
Public Sub Close()
End Sub
how can i do this, i don't want to use different names
View 3 Replies
Nov 14, 2011
I have a Windows Service project designed to monitor an email account and make entries into a SQL Server database when certain emails arrive. This is a rewrite of a similar winforms program that works just fine, except that it requires that the computer be logged into an account and the program started manually, which I can avoid by using it as a service.In the service I maintain a list of logged messages - basically just a string and a timestamp indicating that something has happened. (That list is shared out over a WCF service but I think that's immaterial, at least at the moment.) In my custom class I declare a public event, and elsewhere I raise that event. For some reason, though, the RaiseEvent isn't being run in the service. For example:
[code]...
The problem in this case is that _pc_HandleEvent isn't ever being called. If I duplicate this setup in a regular winform program, everything works like it should. What am I doing wrong? How do I get a service to handle events raised from other classes?
View 1 Replies
Jul 24, 2010
I have a custom class which basically manages the program settings.
In it's New() event, I'm performing a check to see whether a value stored in My.Settings is the same as the default value (I made sure the value wasn't!), if not then it will perform a RaiseEvent ValueChanged().
On my form, I have an instance of the class declared "Private Withevents ProgramSettings as New clsProgramSettings", I also have a handler "Private Sub DoSomething() Handles ProgramSettings.ValueChanged" declared.
When I run the program the form gets loaded, the instance is created, the RaiseEvent is called, but the handler is not receiving the event?
I tried "Private Withevents ProgramSettings as clsProgramSettings", then creating the instance in the Form.Load(), but still no success!?
Is there something I'm doing wrong, or is there a problem with the IDE? I'm using VS 2010.
View 2 Replies
Sep 24, 2010
I'm having an issue where my main form isn't updating even though I see the event fire off. Let me explain the situation and share some of my code which I'm sure will be horrible since I'm an amateur. I created a class to take in the settings for running a process in the background. I add some custom events in that class so I could use that in my form instead of a timer.
[Code]...
View 3 Replies
Mar 30, 2011
Problem that you may have when dealing with two objects that are raising some events. Here, to make it obvious, I am closing the form, but the problem can be experienced with any other 2 classes event. First, what is the problem !
Let suppose that by pressing a button, you want to raise a custom event, then execute a method and then close the form
In that case, you may use a code similar to this
Event BeepIt()
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
RaiseEvent BeepIt()
[CODE]...
View 14 Replies
Nov 17, 2009
I have a userControl11 (either in winform or wpf) which has a ValueChanged custom event. If I put it in client form and in form_load set its value to 100, it will trigger the ValueChanged event. But if I set this value inside the constructor of UserControl1 the custom event won't trigger. How can I force it to do so ?whatever the technical reason, functionally it does make sense. If the object is initializing its value from some sources unknown to the client form and the client form has a textbox bound to this usercontrol value, it is sure convenient that it could refresh its textbox at any time including when the form loads just using one single event handler. Without this the client form has to create another initializer for this bound textbox at form load.
Below the source code of my trials in winform:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
[code]....
View 4 Replies
Oct 24, 2011
I am trying to validate a textbox based on a dropdownlist, e.g. if ddl value is 'Day', textbox value cannot exceed 31. It seems that no matter what I enter triggers my custom validator error, what am I doing wrong,
<asp:TextBox ID="uitxtCamLastVisitDur" runat="server" CssClass="tooltip"
Width="65px" Enabled="False" ToolTip="Indicates a required spending on the member's last visit."></asp:TextBox>
[Code].....
View 1 Replies
Oct 13, 2010
I read data into a DS from an XML file. The user has the ability to "Save" or "Save As" at any time. They can also "Open" an existing file or create a "New" one. (brilliant, don't you think?)
I need to make sure I ask the user if they want to save their existing data (i.e. rewrite the XML file) if the DS has changed from the XML load or from the last time they Saved. On Open, New or exit I have been checking the HasChanges function on the DS. This doesn't work the way that I need. I use AcceptChanges throughout the program to commit values to the DS. This appears to kill the HasChanges even though the DS is now different than the XML file.
Is there an event in the DS that fires when data changes? If so, I believe I can set a flag that can be checked later. If not, is there any other way to track that a DS has changed after the initial XML load? Would reloading the XML into a cloned DS and comparing the two work? Seems like a waste of "time", especially with large XML files, but if it's the only way.
View 5 Replies
Mar 14, 2011
I have a class with two descendent classes (child, grandchild):[code]When a property changes in the Measurement class I raise a OnCrucibleOxidizedMassChanged event:[code]However, the OnChanged sub gets called twice, even though I only assign a value to CrucibleOxidizedMass once.
View 1 Replies
Jul 17, 2009
I have a problem with a ComboBox to select FontStyle. I need to select the font style twice to fire the event in SelectedIndexChanged Event, that means for example to click "Arial Black" twice to set the text to this font.
View 1 Replies
Aug 22, 2011
I need a few threads working simultaneously with URL requests in a VB.NET 2010 app. Once one of them finishes, it should continue with the next task in a list. I'm new to using threads. Since it seems like I can't declare an array of BackgroundWorker, I thought I'd have a control class that creates an instance of a task class for each task, which in turn starts a BackgroundWorker in its constructor.
However, with this approach I'm not sure how to report the result back to the control class upon completion. I had this vague idea that I could send a reference to an object in the control class (or to a public event I can trigger, is this possible?), but then I have to somehow store this address until the work is done. And I don't know how I can store the address from a ByRef for future use.
View 1 Replies
May 12, 2010
I'm looking for an event on a form that fires after Form.Load. Specifically, after the form has been displayed. Is there one?
View 3 Replies
Apr 2, 2009
When I write a byte array to a device using this code, the DataReceived Event never fires.....
[Code]...
AND if the sleep is <40, the event doesn't fire. Is this necessary or am I overlooking something?
View 11 Replies
Feb 27, 2012
what event fires when individual textboxes that are bound to a data source using the properties pane gets refreshed? I wish to use this event to populate a few textboxes that are not bound.
View 1 Replies
Jul 7, 2010
I have a VB .NET form with a splitter control on it, and I want to save its position between program runs. I am currently handling the SplitterMoved event and storing the SplitterDistance. Then on program startup, I set the SplitterDistance to the saved value.
However, sometimes the program resizes the splitter, raising the SplitterMoved event and overwriting my saved distance. I have several splitters over multiple tabs in a tab control, and any time the user goes to a new tab for the first time, the SplitterMoved event fires.Is there an event I can use that will only fire when the user moves the splitter, and not when the program moves the splitter? I tried MouseUp, but when that event fires, the new SplitterDistance is not yet set.
View 2 Replies
Oct 19, 2010
Consider a MyForm class that contains a shadowed implementation of Show(). It also contains a CreateForm() method, which accepts an instance of the form and calls the shadowed sub:
[Code]....
View 3 Replies
Jul 11, 2009
The leave event fires twice in this example. Tab order for the form controls is set to combobox1, button1, button3 Private Sub ComboBox1_Leave(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox1.Leave
[Code]...
if I enter 'A' in the combobox1 then combobox1 leave event will fire twice any other entry is Ok since the next control to get focus is button2 (in the normal tab order).It seems that if I try to skip the next control (based on the tab order set for the form), the leave event fires twice.
View 2 Replies
Sep 18, 2009
I've been following a codeproject article on using the interop forms toolkit (basically a way for developers to slowly upgrade their VB6 projects to .net by allowing .net components run in VB6)
[URL]
While the .NET form is working fine in all other testing projects and environments, I've found that the Form_load event is actually firing twice once it's in executing in the VB6 runtime.Not only annoying, its forcing my initialization code to execute twice (causing all kind of problems on the second run).
If (runBefore = True) Then
View 1 Replies
Jul 17, 2011
I have a form for which the form load event only fires one time. When the program starts. It will not fire again until I end the program and restart. I have tried .show and .showdialog, but it acts the same. I have read about form load events loosing the handles, but my code looks exactly like it should.
Here is the load event code
PrivateSub frmBilling_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) HandlesMyBase.Load
LoadClients()
LoadTherapists()
LoadCPT() EndSub
Here is the code that calles the form.
PrivateSub BillingToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BillingToolStripMenuItem.ClickfrmBilling.Show()
frmbilling.show()
EndSub
View 1 Replies
Dec 10, 2008
I have a tree view with checkboxes. When a user checks an item in the tree, all items below it in the tree should be checked automatically to match the parent. The same is true is a user unchecks an item. That's been reasonably easy to implement using the after check event:-
Private Sub tvwUserGroups_AfterCheck(ByVal sender As Object, ByVal e As System.Windows.Forms.TreeViewEventArgs) Handles tvwUserGroups.AfterCheck
If Not m_Isloading _
[code].....
View 7 Replies
May 8, 2011
I want to change the background color of an element when the mouseEnter event fires. How to make the color of the background darker?? I thought I can use an opacity mask, but it's a gradient, but I need it to be solid. Also it has to be in visual basic code, not in xaml.
View 2 Replies
Oct 7, 2010
I have been using a pretty slick generic invoke method for UI updating from background threads. I forget where I copied it from (converted it to VB.NET from C#), but here it is: Public Sub InvokeControl(Of T As Control)(ByVal Control As t, ByVal Action As Action(Of t))
[Code]....
View 1 Replies
May 12, 2009
I have a ListView with the Activation property with HotTracking. There appears to be about a 2 second delay between when the user clicks the item and the event fires. Is there a way to get the event to fire immediately upon the user click?
View 2 Replies
Mar 12, 2011
At the top of my code for the form I have the following statements (and some other unrelated ones to):
Dim LastDataRow As DataRow
Public Event RowChanged As DataRowChangeEventHandler
When my form loads I run the following line of code:
AddHandler dt.RowChanged, New DataRowChangeEventHandler(AddressOf Row_Changed)
After the form loads I have a FetchData button which connects to the database and brings the records into a datatable object. During this fill operation my Row_Changed event fires (for every record I think) and tries to run DataAdapter.Update(DataTable) (pseudocode) which ultimately fails because I haven't yet created commands. The error I get in my Row_Changed procedure is:
Update requires a valid InsertCommand when passed DataRow collection with new rows.I hadn't even planned to use an InsertCommand at all since I will not be allowing users to insert records from this form. I do plan to allow them to delete or modify existing records, but not insert new ones.run my AddHandler statement after filling the datatable. However, I'm trying to figure out how to rewrite my code so that I can refresh the datatable without closing out the form/application and having to open it up again. I think that's a problem for a separate discussion.
View 1 Replies
Jun 11, 2011
Anyone know why the Mouse_Leave event fires when you don't leave the control with the mouse pointer?Put a large button on a Form so your mouse pointer does not leave it easily.Then try this codeWhen you do, leave the mouse pointer in the middle of the button and then click the button.By the way, if you uncomment the 1st line of code in the Button Click event and comment out the MessageBox, this does not happen.Can someone please explain this behaviour?
Option Strict On
Option Explicit On
Option Infer Off
[code].....
View 5 Replies
Feb 18, 2011
I've got two classes deployed as COM+ components, let's say ClassA and ClassB. ClassA has some public properties. ClassB sets values for those properties and calls a method of ClassA. The method itself does not modify the value of the property. After the call the values of the properties are reset to default values for the corresponding types. This only happens if the called method includes statement ContextUtil.SetComplete(). Once I comment out the statement the values of the properties remain same as they were before the method call, which is what I expect. Do I overlook some basic concept of COM+ objects and their contexts? I would expect the property value to remain the same in any case.
Here's the simplified listing for the code:
Option Strict Off
Option Explicit On
Imports System.EnterpriseServices
<Transaction(TransactionOption.Required)> _
Public Class ClassA
[Code] .....
View 1 Replies