forked from EVEIPH/EVE-IPH
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathIPHIndustryFacility.vb
461 lines (384 loc) · 23.7 KB
/
IPHIndustryFacility.vb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
Public Class IPHIndustryFacility
Private FacilityLoaded As Boolean
Private FacilityRegionsLoaded As Boolean
Private FacilitySystemsLoaded As Boolean
Private FacilitiesLoaded As Boolean
Private PreviousIndustryType As IndustryType
Private PreviousFacilityType As String
Private PreviousFacilityRegion As String
Private PreviousFacilitySystem As String
Private PreviousFacilityEquipment As String
Private PreviousActivity As String
Private CurrentIndustryType As IndustryType
Private CurrentBPGroupID As Integer
Private CurrentBPCategoryID As Integer
Private ttBP As ToolTip
Private cmbCalcFWManufUpgradeLevel As ComboBox
Private DefaultFuelBlockFacility As IndustryFacility
Private DefaultLargeShipFacility As IndustryFacility
Private DefaultManufacturingFacility As IndustryFacility
Private DefaultModuleFacility As IndustryFacility
Private SelectedFuelBlockFacility As IndustryFacility
Private SelectedLargeShipFacility As IndustryFacility
Private SelectedManufacturingFacility As IndustryFacility
Private SelectedModuleFacility As IndustryFacility
Private Sub cmbFacilityType_DropDown(sender As Object, e As System.EventArgs) Handles cmbFacilityType.DropDown
PreviousFacilityType = cmbFacilityType.Text
End Sub
Private Sub cmbFacilityType_KeyPress(sender As Object, e As System.Windows.Forms.KeyPressEventArgs) Handles cmbFacilityType.KeyPress
e.Handled = True
End Sub
Private Sub cmbFacilityType_SelectedIndexChanged(sender As System.Object, e As System.EventArgs) Handles cmbFacilityType.SelectedIndexChanged
' Don't do anything if it's the same as the old type
If PreviousFacilityType <> cmbFacilityType.Text And Not FirstLoad Then
If Not LoadingFacilityTypes And Not FirstLoad Then
Call LoadFacilityRegions(0, 0, True, _
ActivityManufacturing, cmbFacilityType, cmbFacilityRegion, cmbFacilitySystem, cmbFacilityorArray, _
lblFacilityBonus, lblFacilityDefault, _
lblFacilityManualME, txtFacilityManualME, _
lblFacilityManualTE, txtFacilityManualTE, _
lblFacilityManualTax, txtFacilityManualTax, _
btnFacilitySave, lblFacilityTaxRate, CalcTab, chkFacilityIncludeUsage)
Call cmbFacilityRegion.Focus()
End If
' hide array selection for non-pos, hide the other drop downs
If cmbFacilityType.Text = POSFacility Then
Call SetPOSMultiUseArraysVisibility(True, False)
Else
Call SetPOSMultiUseArraysVisibility(False, False)
End If
' Anytime this changes, set all the other ME/TE boxes to not viewed
Call HideFacilityBonusBoxes(lblFacilityBonus, lblFacilityTaxRate, _
lblFacilityManualME, lblFacilityManualTE, _
txtFacilityManualME, txtFacilityManualTE, _
lblFacilityManualTax, txtFacilityManualTax)
FacilityLoaded = False
End If
End Sub
Private Sub cmbFacilityRegion_DropDown(sender As Object, e As System.EventArgs) Handles cmbFacilityRegion.DropDown
If Not FirstLoad And Not FacilityRegionsLoaded Then
' Save the current
PreviousFacilityRegion = cmbFacilityRegion.Text
Call LoadFacilityRegions(0, 0, False, _
ActivityManufacturing, cmbFacilityType, cmbFacilityRegion, cmbFacilitySystem, cmbFacilityorArray, _
lblFacilityBonus, lblFacilityDefault, _
lblFacilityManualME, txtFacilityManualME, _
lblFacilityManualTE, txtFacilityManualTE, _
lblFacilityManualTax, txtFacilityManualTax, _
btnFacilitySave, lblFacilityTaxRate, CalcTab, chkFacilityIncludeUsage)
End If
End Sub
Private Sub cmbFacilityRegion_KeyPress(sender As Object, e As System.Windows.Forms.KeyPressEventArgs) Handles cmbFacilityRegion.KeyPress
e.Handled = True
End Sub
Private Sub cmbFacilityRegion_SelectedIndexChanged(sender As System.Object, e As System.EventArgs) Handles cmbFacilityRegion.SelectedIndexChanged
If Not LoadingFacilityRegions And Not FirstLoad And PreviousFacilityRegion <> cmbFacilityRegion.Text Then
Call LoadFacilitySystems(0, 0, True, _
ActivityManufacturing, cmbFacilityType, cmbFacilityRegion, cmbFacilitySystem, cmbFacilityorArray, _
lblFacilityBonus, lblFacilityTaxRate, _
lblFacilityManualME, txtFacilityManualME, _
lblFacilityManualTE, txtFacilityManualTE, _
lblFacilityManualTax, txtFacilityManualTax, _
lblFacilityDefault, btnFacilitySave, CalcTab, chkFacilityIncludeUsage)
Call cmbFacilitySystem.Focus()
Call HideFacilityBonusBoxes(lblFacilityBonus, lblFacilityTaxRate, _
lblFacilityManualME, lblFacilityManualTE, _
txtFacilityManualME, txtFacilityManualTE, _
lblFacilityManualTax, txtFacilityManualTax)
FacilityLoaded = False
PreviousFacilityRegion = cmbFacilityRegion.Text
' Make sure the pos facility stuff is still hidden
' hide array selection for non-pos, hide the other drop downs
If cmbFacilityType.Text = POSFacility Then
Call SetPOSMultiUseArraysVisibility(True, False)
Else
Call SetPOSMultiUseArraysVisibility(False, False)
End If
End If
End Sub
Private Sub cmbFacilitySystem_DropDown(sender As Object, e As System.EventArgs) Handles cmbFacilitySystem.DropDown
If Not FacilitySystemsLoaded And Not FirstLoad Then
PreviousFacilitySystem = cmbFacilitySystem.Text
Call LoadFacilitySystems(0, 0, False, _
ActivityManufacturing, cmbFacilityType, cmbFacilityRegion, cmbFacilitySystem, cmbFacilityorArray, _
lblFacilityBonus, lblFacilityTaxRate, _
lblFacilityManualME, txtFacilityManualME, _
lblFacilityManualTE, txtFacilityManualTE, _
lblFacilityManualTax, txtFacilityManualTax, _
lblFacilityDefault, btnFacilitySave, CalcTab, chkFacilityIncludeUsage)
End If
End Sub
Private Sub cmbFacilitySystem_KeyPress(sender As Object, e As System.Windows.Forms.KeyPressEventArgs) Handles cmbFacilitySystem.KeyPress
e.Handled = True
End Sub
Private Sub cmbFacilitySystem_SelectedIndexChanged(sender As System.Object, e As System.EventArgs) Handles cmbFacilitySystem.SelectedIndexChanged
Dim OverrideFacilityName As String = ""
Dim Autoload As Boolean = False
If Not LoadingFacilitySystems And Not FirstLoad And PreviousFacilitySystem <> cmbFacilitySystem.Text Then
If cmbFacilityType.Text = OutpostFacility Then
OverrideFacilityName = ""
Autoload = True
ElseIf cmbFacilityType.Text = POSFacility Then
OverrideFacilityName = "" ' Will trigger an autoload
End If
' Load the facility and set the auto
Call LoadFacilities(0, 0, False, _
ActivityManufacturing, cmbFacilityType, cmbFacilityRegion, cmbFacilitySystem, cmbFacilityorArray, _
lblFacilityBonus, lblFacilityDefault, _
lblFacilityManualME, txtFacilityManualME, _
lblFacilityManualTE, txtFacilityManualTE, _
lblFacilityManualTax, txtFacilityManualTax, _
btnFacilitySave, lblFacilityTaxRate, CalcTab, _
chkFacilityIncludeUsage, Nothing, Nothing, chkFacilityIncludeUsage.Checked, Autoload, OverrideFacilityName)
If cmbFacilityType.Text = POSFacility Then
' Hide all these labels so we can see the other blocks
Call HideFacilityBonusBoxes(lblFacilityBonus, lblFacilityTaxRate, _
lblFacilityManualME, lblFacilityManualTE, _
txtFacilityManualME, txtFacilityManualTE, _
lblFacilityManualTax, txtFacilityManualTax)
' See if this is the default pos
With DefaultManufacturingFacility
If cmbFacilityRegion.Text = .RegionName _
And cmbFacilitySystem.Text = .SolarSystemName _
And chkFacilityIncludeUsage.Checked = .IncludeActivityUsage Then
' Is the default, set it
btnFacilitySave.Enabled = False
lblFacilityDefault.ForeColor = SystemColors.Highlight
Call ResetToolTipforDefaultFacilityLabel(lblFacilityDefault, False, ttBP)
SelectedManufacturingFacility.IsDefault = True
Else
' Allow saving of default
btnFacilitySave.Enabled = True
lblFacilityDefault.ForeColor = SystemColors.ButtonShadow
Call ResetToolTipforDefaultFacilityLabel(lblFacilityDefault, True, ttBP)
SelectedManufacturingFacility.IsDefault = False
End If
End With
End If
' Hide for non-pos but show and enable for pos
If cmbFacilityType.Text = POSFacility Then
Call SetPOSMultiUseArraysVisibility(True, True)
Else
Call SetPOSMultiUseArraysVisibility(False, False)
End If
If Autoload Or cmbFacilityType.Text = POSFacility Then
' reload bp Use the original ME and TE values when they change the meta level
FacilityLoaded = True
FacilitiesLoaded = True
Else
FacilitiesLoaded = False
End If
Call cmbFacilityorArray.Focus()
PreviousFacilitySystem = cmbFacilitySystem.Text
' Set the save button in case it's enabled when we don't have a facility selected
If cmbFacilityorArray.Text = "Select Facility" Then
btnFacilitySave.Enabled = False
End If
End If
End Sub
Private Sub SetPOSMultiUseArraysVisibility(ByVal Visible As Boolean, ByVal Enabled As Boolean)
If Visible Then
cmbFacilityorArray.Visible = False
' Show the POS modules for multi-use
cmbFuelBlocks.Visible = True
cmbLargeShips.Visible = True
cmbModules.Visible = True
lblFuelBlocks.Visible = True
lblLargeShips.Visible = True
lblModules.Visible = True
Else
cmbFacilityorArray.Visible = True
' Hide the POS modules for multi-use
cmbFuelBlocks.Visible = False
cmbLargeShips.Visible = False
cmbModules.Visible = False
lblFuelBlocks.Visible = False
lblLargeShips.Visible = False
lblModules.Visible = False
End If
If Enabled Then
' Enable the POS modules for multi-use
cmbFuelBlocks.Enabled = True
cmbLargeShips.Enabled = True
cmbModules.Enabled = True
lblFuelBlocks.Enabled = True
lblLargeShips.Enabled = True
lblModules.Enabled = True
Else
' Disable the POS modules for multi-use
cmbFuelBlocks.Enabled = False
cmbLargeShips.Enabled = False
cmbModules.Enabled = False
lblFuelBlocks.Enabled = False
lblLargeShips.Enabled = False
lblModules.Enabled = False
End If
End Sub
Private Sub cmbFacilityorArray_DropDown(sender As Object, e As System.EventArgs) Handles cmbFacilityorArray.DropDown
If Not FacilitiesLoaded And Not FirstLoad And cmbFacilityType.Text <> POSFacility Then
Call LoadFacilities(0, 0, False, _
ActivityManufacturing, cmbFacilityType, cmbFacilityRegion, cmbFacilitySystem, cmbFacilityorArray, _
lblFacilityBonus, lblFacilityDefault, _
lblFacilityManualME, txtFacilityManualME, _
lblFacilityManualTE, txtFacilityManualTE, _
lblFacilityManualTax, txtFacilityManualTax, _
btnFacilitySave, lblFacilityTaxRate, CalcTab, _
chkFacilityIncludeUsage, Nothing, Nothing, Nothing, chkFacilityIncludeUsage.Checked)
End If
End Sub
Private Sub cmbFacilityorArray_KeyPress(sender As Object, e As System.Windows.Forms.KeyPressEventArgs) Handles cmbFacilityorArray.KeyPress
e.Handled = True
End Sub
Private Sub cmbFacilityArrayName_SelectedIndexChanged(sender As System.Object, e As System.EventArgs) Handles cmbFacilityorArray.SelectedIndexChanged
If Not LoadingFacilities And Not FirstLoad And PreviousFacilityEquipment <> cmbFacilityorArray.Text Then
' We won't have any MM or TM to send, so just do default
Dim Defaults As New ProgramSettings
Call DisplayFacilityBonus(IndustryType.Manufacturing, _
Defaults.FacilityDefaultMM, Defaults.FacilityDefaultTM, Defaults.FacilityDefaultTax, 0, 0, _
ActivityManufacturing, cmbFacilityType.Text, cmbFacilityorArray.Text, _
cmbFacilityRegion, cmbFacilitySystem, cmbFacilityorArray, _
lblFacilityBonus, lblFacilityDefault, _
lblFacilityManualME, txtFacilityManualME, _
lblFacilityManualTE, txtFacilityManualTE, _
lblFacilityManualTax, txtFacilityManualTax, _
btnFacilitySave, lblFacilityTaxRate, _
chkFacilityIncludeUsage, Nothing, Nothing, CalcTab, FacilityLoaded, _
chkFacilityIncludeUsage.Checked, ttBP, GetFWUpgradeLevel(cmbCalcFWManufUpgradeLevel, cmbFacilitySystem.Text))
If txtFacilityManualME.Visible Then
Call txtFacilityManualME.Focus()
End If
PreviousFacilityEquipment = cmbFacilityorArray.Text
End If
End Sub
Private Sub btnFacilitySave_Click(sender As System.Object, e As System.EventArgs) Handles btnFacilitySave.Click
SelectedManufacturingFacility.IncludeActivityUsage = chkFacilityIncludeUsage.Checked
Call SelectedManufacturingFacility.SaveFacility(CalcTab)
'Call UpdateMMTMTaxDataforOutpost(SelectedManufacturingFacility, IndustryActivities.Manufacturing)
'DefaultManufacturingFacility = CType(SelectedManufacturingFacility.Clone, IndustryFacility)
'If cmbFuelBlocks.Visible Then
' ' Save the three POS module selections for multi-modules
' ' Always reset each to the current facility and then set the facility name by the text box entry
' SelectedFuelBlockFacility = CType(SelectedManufacturingFacility.Clone, IndustryFacility)
' SelectedFuelBlockFacility.ProductionType = IndustryType.POSFuelBlockManufacturing
' SelectedFuelBlockFacility.FacilityName = GetMultiUseArrayName(cmbFuelBlocks.Text)
' Call SelectedFuelBlockFacility.SaveFacility(CalcTab)
' DefaultFuelBlockFacility = CType(SelectedFuelBlockFacility.Clone, IndustryFacility)
' SelectedLargeShipFacility = CType(SelectedManufacturingFacility.Clone, IndustryFacility)
' SelectedLargeShipFacility.ProductionType = IndustryType.POSLargeShipManufacturing
' SelectedLargeShipFacility.FacilityName = GetMultiUseArrayName(cmbLargeShips.Text)
' Call SelectedLargeShipFacility.SaveFacility(CalcTab)
' DefaultLargeShipFacility = CType(SelectedLargeShipFacility.Clone, IndustryFacility)
' SelectedModuleFacility = CType(SelectedManufacturingFacility.Clone, IndustryFacility)
' SelectedModuleFacility.ProductionType = IndustryType.POSModuleManufacturing
' SelectedModuleFacility.FacilityName = GetMultiUseArrayName(cmbModules.Text)
' Call SelectedModuleFacility.SaveFacility(CalcTab)
' DefaultModuleFacility = CType(SelectedModuleFacility.Clone, IndustryFacility)
'End If
lblFacilityDefault.ForeColor = SystemColors.Highlight
Call ResetToolTipforDefaultFacilityLabel(lblFacilityDefault, False, ttBP)
' They just saved it
btnFacilitySave.Enabled = False
MsgBox("Default Facility Saved", vbInformation, Application.ProductName)
End Sub
Private Sub txtFacilityManualME_KeyPress(sender As Object, e As System.Windows.Forms.KeyPressEventArgs) Handles txtFacilityManualME.KeyPress
Call OutpostMETETaxText_KeyPress(e)
End Sub
Private Sub txtFacilityManualME_KeyUp(sender As Object, e As System.Windows.Forms.KeyEventArgs) Handles txtFacilityManualME.KeyUp
Call OutpostMETETaxText_KeyUp("ME", txtFacilityManualME, SelectedManufacturingFacility, _
cmbFacilityType, btnFacilitySave, lblFacilityDefault)
End Sub
Private Sub txtFacilityManualME_LostFocus(sender As Object, e As System.EventArgs) Handles txtFacilityManualME.LostFocus
Call OutpostMETETaxText_LostFocus(txtFacilityManualME, cmbFacilityType, SelectedManufacturingFacility.MaterialMultiplier, False)
End Sub
Private Sub txtFacilityManualTE_KeyPress(sender As Object, e As System.Windows.Forms.KeyPressEventArgs) Handles txtFacilityManualTE.KeyPress
Call OutpostMETETaxText_KeyPress(e)
End Sub
Private Sub txtFacilityManualTE_KeyUp(sender As Object, e As System.Windows.Forms.KeyEventArgs) Handles txtFacilityManualTE.KeyUp
Call OutpostMETETaxText_KeyUp("TE", txtFacilityManualTE, SelectedManufacturingFacility, _
cmbFacilityType, btnFacilitySave, lblFacilityDefault)
End Sub
Private Sub txtFacilityManualTE_LostFocus(sender As Object, e As System.EventArgs) Handles txtFacilityManualTE.LostFocus
Call OutpostMETETaxText_LostFocus(txtFacilityManualTE, cmbFacilityType, SelectedManufacturingFacility.MaterialMultiplier, False)
End Sub
Private Sub txtFacilityManualTax_KeyPress(sender As Object, e As System.Windows.Forms.KeyPressEventArgs) Handles txtFacilityManualTax.KeyPress
Call OutpostMETETaxText_KeyPress(e)
End Sub
Private Sub txtFacilityManualTax_KeyUp(sender As Object, e As System.Windows.Forms.KeyEventArgs) Handles txtFacilityManualTax.KeyUp
Call OutpostMETETaxText_KeyUp("Tax", txtFacilityManualTax, SelectedManufacturingFacility, _
cmbFacilityType, btnFacilitySave, lblFacilityDefault)
End Sub
Private Sub txtFacilityManualTax_LostFocus(sender As Object, e As System.EventArgs) Handles txtFacilityManualTax.LostFocus
Call OutpostMETETaxText_LostFocus(txtFacilityManualTax, cmbFacilityType, SelectedManufacturingFacility.MaterialMultiplier, False)
End Sub
Private Sub chkFacilityIncludeCosts_CheckedChanged(sender As System.Object, e As System.EventArgs) Handles chkFacilityIncludeUsage.CheckedChanged
If Not FirstLoad Then
Call SetDefaultFacilitybyCheck(GetProductionType(ActivityManufacturing, 0, 0, cmbFacilityType.Text), _
chkFacilityIncludeUsage, CalcTab, cmbFacilityType.Text, cmbFacilityorArray, _
lblFacilityDefault, btnFacilitySave, Nothing, Nothing, ttBP)
If cmbFacilityType.Text = POSFacility Then
' For this check, if a POS is selected, we need to check all three multi-array types plus the base facility
Call SetDefaultFacilitybyCheck(IndustryType.POSModuleManufacturing, _
chkFacilityIncludeUsage, CalcTab, cmbFacilityType.Text, cmbFacilityorArray, _
lblFacilityDefault, btnFacilitySave, Nothing, Nothing, ttBP)
Call SetDefaultFacilitybyCheck(IndustryType.POSFuelBlockManufacturing, _
chkFacilityIncludeUsage, CalcTab, cmbFacilityType.Text, cmbFacilityorArray, _
lblFacilityDefault, btnFacilitySave, Nothing, Nothing, ttBP)
Call SetDefaultFacilitybyCheck(IndustryType.POSLargeShipManufacturing, _
chkFacilityIncludeUsage, CalcTab, cmbFacilityType.Text, cmbFacilityorArray, _
lblFacilityDefault, btnFacilitySave, Nothing, Nothing, ttBP)
End If
'Call ResetRefresh()
End If
End Sub
' Keypress, Keyup, and Lost focus functions for manual ME/TE/Tax boxes
Private Sub OutpostMETETaxText_KeyPress(e As System.Windows.Forms.KeyPressEventArgs)
' only let them enter the right things
If e.KeyChar <> ControlChars.Back Then
If allowedMETEChars.IndexOf(e.KeyChar) = -1 Then
' Invalid Character
e.Handled = True
Exit Sub
End If
End If
End Sub
Private Sub OutpostMETETaxText_KeyUp(ByVal UpdateType As String, ByRef ManualTextBox As TextBox, ByRef SelectedFacility As IndustryFacility, _
ByRef FacilityTypeCombo As ComboBox, ByRef SaveButton As Button, ByRef DefaultLabel As Label)
Dim Temp As String
Dim TempValue As Decimal
' Get rid of the percent sign if it exists
Temp = Replace(ManualTextBox.Text, "%", "")
If Not IsNumeric(Temp) Then
Temp = "0.0"
ManualTextBox.Text = "0.0%"
End If
TempValue = (100 - CDec(Temp)) / 100
' If it's an outpost, then save the ME/TE/Tax for this in the current facility
If FacilityTypeCombo.Text = OutpostFacility Then
If UpdateType = "ME" Then
SelectedFacility.MaterialMultiplier = TempValue
ElseIf UpdateType = "TE" Then
SelectedFacility.TimeMultiplier = TempValue
Else
SelectedFacility.TaxRate = CDbl(1 - TempValue) ' Tax rate is a straight multiplication, not multiplied with other bonuses
End If
End If
' They changed the value, so enable save
SaveButton.Enabled = True
' changed so not the default
DefaultLabel.Visible = False
End Sub
Private Sub OutpostMETETaxText_LostFocus(ByRef ManualTextBox As TextBox, ByRef FacilityTypeCombo As ComboBox, _
ByRef MaterialMultiplier As Double, ByVal BPTab As Boolean)
If Trim(Replace(ManualTextBox.Text, "%", "")) = "" And FacilityTypeCombo.Text = OutpostFacility Then
ManualTextBox.Text = FormatPercent(MaterialMultiplier, 1)
End If
If Not ManualTextBox.Text.Contains("%") Then
' Format with percent sign
ManualTextBox.Text = FormatPercent(CDbl(ManualTextBox.Text) / 100, 1)
End If
If BPTab Then
'Call RefreshBP(True)
End If
End Sub
End Class