cmdolcet
asked on
Textbox does not update with new value
I have a sub that will loop through twice on the first time the WirelessBase_RF_CH_Changed is set to false and goes into the first condition. One the second loop the WirelessBase_RF_CH_Changed is set to true with the updated value (the value is there and has been updated) I then assign it to the me.Label (lblBaseRFChannel.text) the me.Label shows the updated value when I place a breakpoint in the debug mode, however after I step through and look at the runtime the value on the screen is the old value from the first loop through
Any ideas?
Any ideas?
If WirelessBase_RF_CH_Changed = False Then
BaseRFChannel = FindBaseStationArrayInformation(23)
BaseRFChannel = BaseRFChannel.Substring(BaseRFChannel.LastIndexOf("..") + 2).Trim()
Me.lblBaseRFChannel.Text = BaseRFChannel
Else
Me.lblBaseRFChannel.Text = String.Empty
BaseRFChannel = RF_Selected
Me.lblBaseRFChannel.Text = BaseRFChannel
End If
ASKER
No that method on the link about calling the Doevents did not work
Can you post your code where you have your loops set up? I think we will need to see more to determine what is happening.
ASKER
Private Sub UpdateBaseUnit_Mobile_Collect()
Try
If Wireless_Base_Updated = False Then
FindBaseStationArrayInformation = strDataCOM1.Split(New Char() {Chr(13)}, StringSplitOptions.RemoveEmptyEntries)
grpBaseStation.Enabled = True
Dim serialnumber As String = FindBaseStationArrayInformation(6)
serialnumber = serialnumber.Substring(serialnumber.LastIndexOf("..") + 2).Trim()
Me.lblbaseserial.Text = serialnumber
Wireless_MC_USB_Base_Serial = serialnumber
Dim BaseModel As String = FindBaseStationArrayInformation(3)
BaseModel = BaseModel.Substring(BaseModel.LastIndexOf("..") + 2).Trim()
Me.lblBaseModel.Text = BaseModel
Dim FirmwareVer As String = FindBaseStationArrayInformation(4)
FirmwareVer = FirmwareVer.Substring(FirmwareVer.LastIndexOf("..") + 2).Trim()
Me.lblBaseFirmwareVer.Text = FirmwareVer
BaseStation_Version = FirmwareVer
Dim BaseFirmwareDate As String = FindBaseStationArrayInformation(5)
BaseFirmwareDate = BaseFirmwareDate.Substring(BaseFirmwareDate.LastIndexOf("..") + 2).Trim()
Me.lblBaseFirmwareDate.Text = BaseFirmwareDate
BaseStation_Version_Date = BaseFirmwareDate
Dim BaseOperationalMode As String = FindBaseStationArrayInformation(8)
BaseOperationalMode = BaseOperationalMode.Substring(BaseOperationalMode.LastIndexOf("..") + 2).Trim()
Me.lblBaseOperationalMode.Text = BaseOperationalMode
Dim BaseDescription As String = FindBaseStationArrayInformation(10)
BaseDescription = BaseDescription.Substring(BaseDescription.LastIndexOf("..") + 2).Trim()
Me.lblBaseDescription.Text = BaseDescription
BaseStationID = FindBaseStationArrayInformation(20)
BaseStationID = BaseStationID.Substring(BaseStationID.LastIndexOf("..") + 2).Trim()
Me.lblBaseStationID.Text = BaseStationID
BaseNetworkID = FindBaseStationArrayInformation(21)
BaseNetworkID = BaseNetworkID.Substring(BaseNetworkID.LastIndexOf("..") + 2).Trim()
Old_Base_NetworkID = BaseNetworkID
Me.lblBaseNetworkID.Text = BaseNetworkID
BasePanID = FindBaseStationArrayInformation(22)
BasePanID = BasePanID.Substring(BasePanID.LastIndexOf("..") + 2).Trim()
Me.lblBasePANID.Text = BasePanID
Base_PAN_ID_HEX_Value1 = "&H" & BasePanID.Substring(0, 2)
Base_PAN_ID_HEX_Value2 = "&H" & BasePanID.Substring(2, 2)
Dim Send_PAN_ID_HEX() As Byte = {Base_PAN_ID_HEX_Value1, Base_PAN_ID_HEX_Value2}
Send_PAN_ID_Original_HEX = Send_PAN_ID_HEX
If WirelessBase_RF_CH_Changed = False Then
BaseRFChannel = FindBaseStationArrayInformation(23)
BaseRFChannel = BaseRFChannel.Substring(BaseRFChannel.LastIndexOf("..") + 2).Trim()
Me.lblBaseRFChannel.Text = BaseRFChannel
Else
'Updates the New RF Channel on the Form in Runtime
Me.lblBaseRFChannel.Text = String.Empty
BaseRFChannel = RF_Selected
Me.lblBaseRFChannel.Text = BaseRFChannel
End If
End If
Catch ex As Exception
End Try
End Sub
You sure you're not getting an exception that is being ignored?...
Pop a MessageBox in your Catch block:
Catch ex As Exception
MessageBox.Show(ex.ToStrin g)
End Try
Pop a MessageBox in your Catch block:
Catch ex As Exception
MessageBox.Show(ex.ToStrin
End Try
ASKER
Idle_Mind:I added the MessageBox.Show(ex.ToStrin g) to the catch block and I didn;t receive any errors.
...and you're sure it's making it into the main If block the second time?
Private Sub UpdateBaseUnit_Mobile_Coll ect()
Try
If Wireless_Base_Updated = False Then
So "Wireless_Base_Updated" didn't somehow get changed to True?
Private Sub UpdateBaseUnit_Mobile_Coll
Try
If Wireless_Base_Updated = False Then
So "Wireless_Base_Updated" didn't somehow get changed to True?
ASKER
yes correct. I stepped through the loop twice and at no point in time did it ever get caught by the catch statement.
I even look at the variable BaseRFChannel and it contains the updated value I even step a line further and see that the Me.lblBaseRFChannel.Text is changed to the updated value.
It seems just not on the form the update happens
I even look at the variable BaseRFChannel and it contains the updated value I even step a line further and see that the Me.lblBaseRFChannel.Text is changed to the updated value.
It seems just not on the form the update happens
You says WirelessBase_RF_CH_Changed through twice ?
Is this a Event sub ?.
Is a common mistake think that the Changed Event is raised only when user changes the value. It raises also when your code modify the value.
private Processing_WirelessBase_RF _CH_Change d = false.
Private sub WirelessBase_RF_CH_Changed (...)
if Processing_WirelessBase_RF _CH_Change d then return
Procesing_WirelessBase_RF_ CH_Changed = true
..... here your code .....
Processing_WirelessBase_RF _CH_Change d= false
end sub
Is this a Event sub ?.
Is a common mistake think that the Changed Event is raised only when user changes the value. It raises also when your code modify the value.
private Processing_WirelessBase_RF
Private sub WirelessBase_RF_CH_Changed
if Processing_WirelessBase_RF
Procesing_WirelessBase_RF_
..... here your code .....
Processing_WirelessBase_RF
end sub
ASKER
x77: Yes this is an event sub.
ASKER
x77: I may be misleading everyone. Let me explain in detail at what i am doing and what I want to accomplish. I have (2) forms the first form loads and opens a serial COM port. and keeps it open on the first form I have a textbox that will return a value from the Serial string once the COM Port is open, then I open the second form up from a control button and set a value to the variable. I then want to take that public variable and set the value to my textbox on my first form.
So you pass the value from the first form to the second form. Got it.
The user is then changing the value on the second form?
...and you want to update the value on the first form with the new value?
Do you want the update to occur in real-time?...or only when the second form is closed?
The user is then changing the value on the second form?
...and you want to update the value on the first form with the new value?
Do you want the update to occur in real-time?...or only when the second form is closed?
ASKER
I think I am trying to invoke a method on the form before the form has finished initializing. However I would like to do it real time.
So when the value in the second form is changed, you want the value in the first form to change at the same time?
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Glad you figured it out. I see you are passing a reference to Form1 into Form2. =)
ASKER
There was a similar issue
See if this does the trick, add Application.DoEvents after you update the label?
http://msdn.microsoft.com/en-us/library/system.windows.forms.application.doevents.aspx
Regards,
Keith