I have a modal form that does double duty.When a user wants to add a new object to a database, I open the form blank and they fill it out. When the form closes, all of the data is passed back to my main form and is used to create the new object in the database.When a user wants to edit an existing object, I open the form and pre-populate all of the fields with the object's data.I'm running checks on the form as they edit the fields, only enabling the "OK" button (which will update the database) if the form has actually been changed. If they make a change and then undo it, the "OK" button is reset to Enabled = False.At the bottom of the form are a ComboBox, two buttons and a ListBox. The intent is to allow the user to select an item from the ComboBox and "Add" ("Add" button) to the ListBox, or select an item in the ListBox and "Remove" ("Remove" button) it FROM the ListBox.
This function works fine when the form is loaded blank.When the form is loaded with data, however, (and in the testing I've done, the ListBox has no items in it to start, which is valid), adding an item from the ComboBox to the ListBox causes the Modal form to close with a DialogResult of Cancel.I've tried to trace the source of this issue, but stepping through each line in debug mode gives me no clue as to why this is happening.I COULD remove all of the checks and update the form each time the user presses "OK" (in the case of no changes, the database data would be overwritten with the same data), but that seems kludgy and less elegant. Plus, I'd like this logic to work.
Based on our tests primarily done in VB.NET in VS2010 it seems that when you close a WinForm the "RowValidating" event of the DataGridView on that form behaves differently depending on whether the form is MODAL or NON-MODAL. What we did was open the form (MODAL and NONMODAL) and changed a value of a cell and then immediately clicked the "X" to close the form. It looks like the "RowValidating" event DOESN'T fire if the grid is on a MODAL form but it DOES fire when the grid is on a NON-MODAL form. We can't figure out why that is... Is this a known bug in .NET?
Dim frm As Form For Each frm In Forms Set frm = Nothing Next frm
The above code is what I used in VB6 to close all forms associated with my programs before my program closed. I have been searching for information on how to make sure all forms are closed when closing a VB2008 program.
I have seen info on using the Project Property Shutdown mode When startup form closes and I currently have this set.
Is this all that is really necessary? Will the garbage disposal close everything else to free up RAM?
Also, if I have several forms open and want to close all from the main form without closing each one individually, what is the best approach? Is there a collection like in VB6, go through the collection, compare it to the name of the main form and close it if it is not the main form?
I want to wait for and close a modal form (a popup) from another application, as soon as it appears. I want to do this from VB.NET, but suggestions in C# should be easily translateable.
I can hard-code the modal popup's caption in my app, since it's long and unique. What I want to do is simulate either the user clicking on the close ("X") button on the form, or a click on the defeault, tab-order 0 button of the form. Either would work.
Maybe I need more info about the modal popup other than the title bar's caption? In any case, it's safe to use it as an unique identifier of that modal form. I also want that code to terminate checking as soon as the first event of closing the popup happens.
I believe it's trivial, but I can't find any ready info on that. Microsoft says I should not send WM_CLOSE to the modal popup, since it will call DestroyWindow() instead of EndDialog(), but to be honest I don't even know what "sending WM_CLOSE" to the "window" means =/
There may be times when it would be useful for your code to be able to find and close modal dialogs displayed by an application. Perhaps you do not want to have to wait indefinitely for your user's input, or are using the COM Web browser control to automatically navigate Web page and would like to interactively close alert messages that pop up.Digging into our Interop toolbox, we find that this is a relatively simple process using a few core Win32API calls. Starting with the handle of the main window associated with the dialog (this is the form from which the messagebox was shown, whether from your code or from a Web page hosted in a Web browser control on the form), the GetWindow function can be used to retrieve a handle to a dialog windows (called a popup by the Windows API) being displayed (if any). The same function can then be used to enumerate the child windows of the dialog to find a button on the dialog to click in order to close it, and the SendMessage API function can be used to simulate that click, effectlvely closing the dialog window.
NOTE: At the top of whatever code file you put this code, be sure to include the following line (thanks poiygon for pointing this out):Code:Imports System.Runtime.InteropServices this allows for the shortcuts to the DllImport attributes.[code]This sample can be easily modified to close a dialog in another application (by using the MainWindowHandle of that application in the LookForAndCloseIEPopup function, instead of "Me.Handle") or to close any other type of modal dialog message being displayed to your user.
All of my forms are MDI children. I have one form that is collecting input parameters for a report. One of the parameters needs to come from another form. For the life of me, I can't get it to work.
[Code]...
I have to message box code just to verify the selection. glbPart is just a hand off parameter to tell the frmVendorList code to come back to this form rather than where it was origianlly programmed to go.I tried a do until glbVendor <> "", but that put me into a death loop and I never got to select a vendor from the vendor list form. Obviously, the easiest would be if I could make frmVendorList Modal, but I can't see how to do that once it's been created modally.
I have a form with a browser inside. When loading this form I set the browser.navigate to a url.Now to display this form I used the: form. ShowDialog()to have the form modal (which is what I want).But now when I close this form and reopen it, the browser doesn't refresh (the navigate doesn't start)this is beacuse closing a Showdialog() form doesn't unload it from the memory. To empty the memory I used the.[code]It closes and when reopened it reload the page, but it's not modal anymore and also closing the main form doesn't close this form.So what I would like is to have the form with the browser modal, but every time I load it, it should navigate to the url set.
I have a main form that has a button with which a smaller form is shown. Think of the smaller form as the Find/Replace dialog in many applications, such as Notepad. It's important that the form is (what I believe is called) modal. What I mean is that it always stays on top of the main form. I ensure that by calling the Show method with "Me" as the owner argument. Whenever the small form loses focus it will not disappear into the background but stay visible (albeit out of focus). If you don't understand open up Notepad and have a look at the behavior of the Find/Replace dialog.
Here's my problem: instead of actually closing the form when the X is pressed, I want it to simply Hide itself, so its position and the state of any controls (checkboxes etc) is preserved automatically.To achieve this I simply cancel the FormClosing event and Hide it:
vb.net Private Sub Form2_FormClosing(ByVal sender As System.Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles MyBase.FormClosing
[code]....
To show the form, I use the following (note the (Me) to make the main form the owner of the form; this ensures that it remains visible even when it is out of focus):
vb.net Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Form2.Show(Me) End Sub
Now. When I run my project, and open the Form2 (small form), then hide it again (by 'closing' it), I can no longer close the main form (Form1)! It seems the main form cannot close when the small form still exists (albeit invisible)...?? When I don't use the Me argument in the Show method, I don't get the behavior I want. I know I can set the TopMost property to True but that will also cause it to become visible on top of all the other forms, even windows not part of my application.
I'm running a program, the first form is a login form. If you pass this i Hde form1 and show form2.When i'm click the x in the top right hand corner my form goes away but in my processes (task manager) it's still there. why?
I have 2 forms. When a user clicks something on form1, form2 pops up. After user is done with form2 and closes it (where the dataset is updated), I want form1 to "reload" the dataset to reflect changes made in form2.
I have the following code to close a form which is a child. The problem is that when it closes, it closes the MDI parent too.
Private Sub frmTransaction_Closing(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles MyBase.Closing If ListView1.Items.Count >= 1 Then
What function would i use to cancel the form from being closed via them pushing the "x" in the top right?Basically want it to hide the form, set showintaskbar to falseand then display the notifyicon. Which all I know how to do, but cant quite seem to figure out how to stop the form from being closed.
I am working on a program and for some reason when I run it as an executable outside of debug mode, if I run the main subroutine of the program, the process remains in memory after being closed. Even though the form is closed/gone, it will be in the process list and I have to ctl-alt-del to remove it. If I exit right after opening the form without doing anything, it closes like normal. I am closing and disposing everything I can think of, and I've never had this problem before. This is how I am exiting, but the problem also occurs if the user "X's" out.
Me.Close() Application.Exit()
I have a couple web file requests in my program, which is the only thing out of the ordinary (code-wise) for me, don't know if those are the root of the problem. I can't imagine this is the first time this has happened to anyone, but I couldn't find anything helpful with my search terms. Any ideas/common solutions? I can post sections of my code if it will help, but the whole thing is pretty long and I couldn't narrow down any potential problem areas.
1. I am closing the form which started the thread inside the thread. There are no errors , but Is it safe ?
2. The thread starts at click of a button . If same button is clicked again , the thread is aborted. Should the thread be made Background or foreground ? it is working either way.
my code :
Private Sub BtnOk_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnOk.Click m_Thread = New System.Threading.Thread(AddressOf MyFunction) m_Thread.IsBackground = True
Is there a way to prevent the form closing event from executing if validation fails on a control? If validation on a control fails this stops the form from closing, but the closing event still executes. Scenario is user has focus in a text box, tries to close the form. Validation fails, but closing event is fired. I'm not sure how I can abort that event.
I have an Enum file, as shown in first code block. Though it's first time I use an enum file, so maybe it's not correct to use it like this.. My purpose is just to be able to reference a global parameter from anywhere, so I can just type DataInterval.M1, and it will be treated as an integer... or.. will it not ? urther I have a property in my DataSeries class, of type DataInterval. And in this class I also have a bunch of methods Get/Set etc. to do different work on the dataseries (Inherits List(Of BarData)). roblem: The interval property keeps changing unexpectedly every time the GetNextCloseTime function is called.
''' <summary> ''' "Time Frame" of data series ''' </summary>
Is there any way I can find the exact reason a form is closing ? To be more specific , I'd like to find when a form is closing :1) because the user pressed the X button on the upper right corner2) due to code (Me.Close , MyForm.Close etc)I know I can use the FormClosing event and use this code :If e.CloseReason = CloseReason.UserClosing Thenhowever it seems that the CloseReason.UserClosing catches both cases (closed by te X button or by code) . So , is there any way I can find exactly the reason a form is closing ?Back in VB6 , the correspondent UnloadMode variable of the Form_Unload event could be "vbFormCode" which indicated specifically that the form was closed by code
I have a VB. Net App where I want the user to open a modeless form which contains reference information about items in a select box. If the user double clicks the item selected in the list box a modal form is opened to edit the item.I want the previously opened reference form to remain active/enabled, that is, I want the user to be able to click on it, move it, etc.I was able to get the form to at least show up on the task bar by setting it's "ShowInTaskBar" property to true, however, when it comes to the front the user can still not move it to the side to view all of the Edit Forms information.
I'm having an interesting issue that I can't reproduce on a different project, but can consistently on this one. I have no clue what might be causing it, but am hoping that someone may have seen it before.
I have a main form, from which I run a series of checks. On this form, I have a listview control. Because of some issues with the refreshing of this listview control, I had to create my own messagebox. It's just a form that displays some text ( it also happens to look nicer than MsgBox; in my opinion, anyways ). It's been working great for months, until recently.
My problem is that on my main form's load event, I run this check, which returns an error within a try/catch block. I then call my custom messagebox with a message. It in turns calls it's ShowDialog() function.
In any other situation ( after the main form has been loaded ), I have no problems. The messagebox goes on the screen and behaves appropriately ( ie: waits for my input and acts as a modal dialog ( stops execution of my main form's thread ) ). However, on this onload event, my messagebox comes up and goes away almost immediately afterwards.
I've traced it all the way to the showdialog() call. For no explicable reason, it appears to skip right over this call, without me doing anything on the form.
Here's what the inner trace looks like ( when I put a breakpoint on the onclosing event for this messagebox form ):
How do I revert a form including the controls back to a original state without closing the app? For example I got a picture box and 2 buttons in a form..
I have a form in a vb.net windows form application called PolicyRefreshStatus.vb that has a ProgressBar control on it. From the main form called EditPolicy.vb I need to show PolicyRefreshStatus.vb over top of EditPolicy.vb - but the way things are wired I'm controlling the the ProgressBar and it's steps from logic inside EditPolicy.vbIf I display the PolicyRefreshStatus.vb bar using the .show() method things work fine.The problem is if the user clicks back on the main form then PolicyRefreshStatus.vb losses focus. If I show PolicyRefreshStatus.vb as a modal form using .ShowDialog() then execution halts in EditPolicy.vb after the .ShowDialog() statement.
so for example in the code: mPolicyRefreshStatus = New PolicyRefreshStatus mPolicyRefreshStatus.pbMax = mPolicy.ClaimsUpdateMax
I am trying to pass information to parent form from modal form in vb.net winforms application.
1.) I created a copy of a form and displayed it using following code.
dim f=new frmParent() f.show()
2.) Depending on conditions a button on frmParent opens a modal child form and asks for some informations. I used following code for that:
dim f = new ChildForm() f.showDialog()
Both code works fine. When user press saves in child form i need to close childForm and use the user types values in parent form. I know how to close the childform but not sure how to pass info from childform to parent form.
I'm new in .Net and I have an application with windows form "LOGIN" When users enter the user and password and click "ok", then if user passes validation then I have the code Show(MDIMainMenu) (I'm trying to open an mdi form), but I receive the following error: "Form that is already visible cannot be displayed as a modal dialog box. Set the form's visible property to false before calling Show. Error Number 5"
I have designed my app for multiple gridviews. When a user double clicks a row it opens up the data in a modal form and when they commit changes the row gets updated.While they have that modal window open they can not go back to the grid.But I have a alerts/messages window always running (like outlook tasks). As soon as I open the modal window I can not access that tasks window. (Default behaviour)How can I open the modal form and still let the user access/view the tasks window while they work on the modal window.(I tried creating it in a differant thread, but got a lot of cross thread errors so decided to abandon that approach.I thought that 2 modal form can run at the same time as long as they have differant parents. But aparently the main GUI thread pauses as soon as you open a modal window on it.