M
Marcin Floryan
Hello!
My question regards opening (and re-opening) Form and the Load event.
I have a main form (frmMain) and I also have a data form (frmData).
In the main form I have created:
Private fData as new frmData()
And later, as my application is running, I open data form many times (even a
hundred times) like this
fData.RowId = ... ' there exists a public property of frmData called RowId
If (fData.ShowDialog(Me) = DialogResult.OK) THEN
...
ELSE
...
ENDIF
frmData has a private object of some class called "classData" and then I
want to bind some controls on frmData to properties in classData, like this:
....
Private cData as New classData()
.....
Me.txtValue1.DataBindings.Add(New Binding("Text", cData, "Value1"))
Where can I define the binding? When I try to define it after
InitialiseComponent() I got "OutOfMemory" Exception, so I decided to move it
and do the binding during the "Load" event (as It was shown in some MSDN
Magazine articles). But it appears that the Load event fires EVERY TIME
frmData opens (contrary to what the documentation states: Load Event -
"Occurs before a form is displayed for the first time.") and the second time
my form is opened
binding fails. I could create a variable "AlreadyBound" of type Boolean but
it seems a dirty solution for me. And then again I feel creating fData every
time it is opened and the disposing of it is a waste of time and resources.
I wait for any good clues regarding:
- how to open form multiple times (this is what I do with fData)
- how to have some operations performed every time the form is opened (like
clearing the data fields) while other only the first time the form is opened
(or when it is created in the memory)
- when (and how) to do the binding
Thanks in advance. Marcin Floryan.
My question regards opening (and re-opening) Form and the Load event.
I have a main form (frmMain) and I also have a data form (frmData).
In the main form I have created:
Private fData as new frmData()
And later, as my application is running, I open data form many times (even a
hundred times) like this
fData.RowId = ... ' there exists a public property of frmData called RowId
If (fData.ShowDialog(Me) = DialogResult.OK) THEN
...
ELSE
...
ENDIF
frmData has a private object of some class called "classData" and then I
want to bind some controls on frmData to properties in classData, like this:
....
Private cData as New classData()
.....
Me.txtValue1.DataBindings.Add(New Binding("Text", cData, "Value1"))
Where can I define the binding? When I try to define it after
InitialiseComponent() I got "OutOfMemory" Exception, so I decided to move it
and do the binding during the "Load" event (as It was shown in some MSDN
Magazine articles). But it appears that the Load event fires EVERY TIME
frmData opens (contrary to what the documentation states: Load Event -
"Occurs before a form is displayed for the first time.") and the second time
my form is opened
binding fails. I could create a variable "AlreadyBound" of type Boolean but
it seems a dirty solution for me. And then again I feel creating fData every
time it is opened and the disposing of it is a waste of time and resources.
I wait for any good clues regarding:
- how to open form multiple times (this is what I do with fData)
- how to have some operations performed every time the form is opened (like
clearing the data fields) while other only the first time the form is opened
(or when it is created in the memory)
- when (and how) to do the binding
Thanks in advance. Marcin Floryan.