I have a background thread that checks software updates available and few other things. If there is an update it shows a msgbox do you want to update. Since this is in another thread its not being application modal. I can still use form screen enter text to textboxes.I thougth of moving the msgbox out side the thread but then i need to do some amount changes in my code.
I'm currently having a form that has a button starting a long process, with feedback into another windows textbox (call frmProcessLog).
I'm using a Background worker to laucnh the process, upgrade the status of the process and display feedback on the frmProcessLog textbox, and to know when the thread process ended up, (from the cancel button, from an error or normal termination).
the main thread process has some msgbox in it, asking questions to the operator (yes/no/cancel).
I've added the msgboxstyle.systemmodal to the msgbox call which works "ok" excpet if the operator decide to ignore the showing message box and click the cancel button on the frmProcessLog form, which is still clickable even though I supplied "systemModal" to the msgbox. this makes the msgbox hidden behind the frmProcesslog form and the process can still continue.
If I close my frmProcessLog form, I will see the previously msgbox behind it and If I end up click one of the button it will end up at an application error because the thread that called it is not existing anymore.
So I would like that the msgbox to be launched from the thread making it as if it was launched from my frmProcessLog window in a modal way.
I'm trying to get a VB2008 multi thread application working that connects to a local server program using sockets. Server requests for this particular system can be more quickly handled by a number of connections, so I've written some code to run any number of data request threads that I choose. The problem that I'm having is that the data returned from the server is getting mixed up and is often returned to a different thread/socket than the one that requested it. Other than that, it seems to work okay. If I use just one thread, then the system works as it should. Pls. see incuded code, which is heavily edited to remove all the other fruit salad. Is there any way to set up the sockets so that data returned to the socket/thread that requested it?
Module StaticDeclarations Public WithEvents g_SD As New SocketDataClass(New MainThread.MTCallback(AddressOf MainThread.MTResultCallbackSub)) Public WithEvents g_MT As New MainThread(New SocketDataClass.SDCallback(AddressOf SocketDataClass.SDThreadResultCallbackSub))
I am getting this exception: Cross-thread operation not valid: Control 'TextBoxOutput' accessed from a thread other than the thread it was created on. in a VB 2008 Windows Forms application that I havent specifically made multi-threaded. I have create a sub called Out() like this:
Private Sub Out(ByVal inString As String) Me.TextBoxOutput.Text += (Me.TextBoxOutput.Text & inString & vbNewLine) Me.TextBoxOutput.SelectionStart = Me.TextBoxOutput.Text.Length Me.TextBoxOutput.ScrollToCaret() End Sub
and I call it from various events to log messages I am getting from my pbx, which I use a third party open source dll to access. The interesting thing to me is that if I run the deployed application (ie, not in the VS IDE) I do not get any exceptions, it's only from within the IDE.if I add the line: Control.CheckForIllegalCrossThreadCalls = False to the form's constructor, the exceptions stop, but a) this seems like a hacky way to get around the issue and b) the application seems to hang sometimes when I have it set this way.
I have a thread in an application which calls a sub routine Main(). The Main sub routine in turn call several sub routines/functions from with the same module,several different classes in the same application. Also some sub routines/functions call routines from a class library. Now say the routine/function in class library goes into a infinite loop and never returns. I would like my thread in the application to raise a event and display message to the users about the infinite loop. I am giving some sample code for the application.
My routine to check for updates is run as a separate process. Exiting the application is required to update, so a dialog asks the user, when an update is found, if they want to exit now. f they do, the code (from the update thread) calls Application.Exit().However, if the FormClosed event of any form that needs to be closed needs to access its controls, an invalid cross-thread operation is detected (which sounds pretty logical).
Is it possible to have an application where form1 opens a second modal form (form2) and then allows the user to minimized form2 causing the entire application to minimize to the taskbar.(form2 is never shown in the taskbar) A simple example of this is winzip where a second modal progress window is opened which can be minimized?
I have a class that creates a ticker whose tick event checks somes stuff for me. If I instantiate the object and call the methods it works just fine. however if I create a new thread and call the function then the tick event doesnt get called for some reason.
Calling the object/creating thread: Dim checkObj = New checkOutLook checkObj.delForm = Me
[Code].....
why it would have problems handling an even tick on a separate thread? I even added a MessageBox output in the ticker to be able to check that its working properly
i want to take a printscreen at my application when a msgbox it's in foreground..When the programs get into a catch block, i display a msgbox with the error to the user, and the user must click yes or no to send the info to the database..BUt to send the info to the database i need to take a printscreen to the error message with all info of what the user was doing in my program...
If i use a different thread to show the messagebox i only get the image of the messagebox, if i use the same thread i can't take the picture (if i can i don't know how).So i need some help to take a picture to the messagebox with my program in background and then wait for user response to the messagebox.
I'm using a background worker to in an Excel VSTO application to throw up a progress dialog box with a status bar and a cancel button to escape from long running calculations. It's working really well, except for one issue. I'd like to use a Modal Dialog, so that the UI behind the dialog gets locked up, instead of a Modeless Dialog. If I use .ShowDialog() instead of .Show(), everything is great until you hit the Cancel button on the form. Following things in the debugger, the cancellation happens, it just takes somewhere in range of 30 seconds. If I use .Show() on my form, then the cancellation occurs immediately as it should.
I am writing a web application using .net 3.5 and vs 2008 which allows people to add data to a db via a control panel front end.Objective: Before committing one of the fields to the db i would like the user to answer Yes, No or Cancel to confirm their action. I have tried to implement this with a modal dialog box or message box but the following error appears: Server Error in '/' Application.
Well to simplify it, whenever I use sendkeys from a background thread it just doesn't work. I even created a textbox, button, and backgroundworker with the following code:
Public Class Form1 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
I have a background thread that calls a subroutine with the following inside it. I'm assuming the thread is messing with this part since it doesn't return anything.
Dim ctl As Control = Me.GetNextControl(Me, True) Do Until ctl Is Nothing If TypeOf ctl Is TextBox And ctl.Enabled = True And ctl.Tag <= 36 Then
[Code]....
I just called the sub that this is in without using the thread and it works fine, so it is the thread. How can I get this working inside a background thread?
I have this For Next Loop with a Delay that runs but it stops running till I hit OK on the MsgBox. what is the best way to do a task x times with x delay but not wait for MsgBox. [code]...
Is it possible to have a Msgbox without a button on it in a console application. I would like to have a msgbox pop up and then disappear when the task has been completed. Or could I send the msgboxresult to some form of window that would just disappear when the file has been written? [code]
I am using Visual Studio 2010 and have been slowly getting into threading. My current project has a form with a button that in turn starts two threads. The form itself has two labels on it that are used to display the progress of the computations. Each thread has a delegate defined to change the value of the respective label (as the labels are not defined in the thread, but on the form itself). The threads call subs from a separate class. All of the calculations work flawlessly. My problem is that the labels do not visually update. Through use of message boxes at the end of each loop, I know that the label text property is, indeed, being changed, but it is not actually refreshing and updating on screen.
My delegate code is as follows (I grabbed this code off of another forum where people had the same issue - it seemed to work for them, but not for me):
Private Delegate Sub UpdatePMLabelTextDelegate(ByVal s As String) Private Sub UpdatePMLabelText(ByVal s As String) ' Are we in the same thread as the label itself?
A friend of mine has requested my assistance in making a "panic button" application where you place the directory, click a button and boom. Directory deleted. You might assume this may not be the most legal application. I have already figured out how to delete directories due to this MSDN post. My code is near the exact same.
My problem is, I want to make sure the button is fully intentional. So I added a MsgBox with Yes, No, and Cancel. As you can see below:
I have a web application based on vb.net.I used MsgBox() in my MYPage.aspx.vb where my expectation is that the user on client should click on a button and based on it I would process further.But I heard a suggestion the MsgBox() is working fine in my code cause on developer machine(my dev box) webserver is running locally. This does not work on a remote web server or in any hosted environment outside of a local server.
Is there a way to intercept a MsgBox() from an external application and block it using VB.Net?
For this discussion, let's say the MsgBox Title is "SQL Application" and the Message is "SQL Error - Try Again".
I have found some examples of looking for the MsgBox to pop-up (by watching for the Window title) and then sending key(s) to press OK, but I was curious if the whole process could be avoided. Otherwise, the user still sees a MsgBox or a "flash", even if it's only temporary.
Im working on a console application, and i need my application to open message boxes without stopping/interupting/pausing the loop. I have been trying to make it open another application which spawns the messageboxes, but then every message box comsumes ~4MB RAM which becomes a problem when to many gets opened.
The problem - The btnPause doesn't pop up until AFTER the thread sleeps, but the other two buttons works correctly. What the heck is going on? Here, I'm using the Sleep to simulate doing external events yet to be programmed.
How to Resolve following Error in .netNon-modal forms cannot be displayed in this host application from an ActiveX DLL, ActiveX Control, or Property Page.