vb.net - 变量取决于选项卡焦点
问题描述
我有一个问题困扰了我很长一段时间,但我无法解决这个问题。
所以我有一个包含 8 个选项卡的程序,当我单击此页面上的按钮时,所有选项卡都使用相同的公式进行计算,但基本值取决于选择了哪个选项卡以及单击了哪个按钮
变量 a1 和 a2 是访问完全相同的数据库的相同值,就像 b1&b2 和 c1&c2 用作组合框一样
Private Sub Calculate() Handles button1.Click
value1 = 0.5
sum1 = a1.selectedValue*b1.SelectedValue*c1.SelectedValue*value1
textbox1.value = sum1.value
Private Sub Calculate2() Handles button2.Click
value2 = 0.55
sum2 = a1.selectedValue*b2.selectedValue*c2.selectedValue*value2
texbox2.value = sum2.value
有什么方法可以通过依赖于重点的选项卡来创造价值并简化它?喜欢
Private Sub Calculate(sender As Object, e As EventArgs) Handles button1.Click, button2.Click, button3.Click
if tabpage1 is focus then
value = 0.05
elseif tabpage2 is focus then
value = 0.55
end if
if a1 is selected then
a=a1.value
elseif a2.is selected then
a=a2.value
......
endif
.......
sum = a*b*c*value
if tabpage1 is focus then
textbox1.value = sum.value
else
....
endif
?? 我知道上面的代码远非“简单”,实际上每个子中的处理按钮可能是嗯......更好?只需查看其他观点即可在一个子项中执行此 8 个选项卡
解决方案
我建议最好的解决方案是这样的:
Dim selectedTab = TabControl1.SelectedTab
Dim tb = selectedTab.Controls.OfType(Of TextBox)().First()
Dim value = CInt(selectedTab.Tag)
'Use tb and value here.
您只需将Tag
每个属性设置TabPage
为适当的值,如果每个页面上还有其他行TextBoxes
或它位于另一个容器内,则可能需要调整第二行。每个页面上显然有多个ComboBoxes
,因此该部分可能如下所示:
Dim cbs = selectedTab.Controls.OfType(Of ComboBox)().ToArray()
Dim cbb = cbs(0)
Dim cbc = cbs(1)
推荐阅读
- java - 提交响应后无法调用 reset()
- android - 如何在虚拟设备中检查反应本机项目输出
- python - 如何打开从 MNIST 数据库中提取的图像
- javascript - 在迭代对象数组时替换 for 循环
- go - 为什么 typeof(method) 不返回 reflect.Method 实例?
- c# - 单击winforms(C#)中的按钮后,如何将“SendKeys”发送到最后一个活动输入文本框?
- javascript - Swiper:我可以按行对元素进行排序并分组吗?
- ruby-on-rails - 简单表单使远程抛出错误
- javascript - 如何从.net中的.js文件调用类库
- google-cloud-bigtable - HappyBase Table.cells 不返回任何结果