Vb.net 使用内部调用的不同函数调用同一个函数
我希望我的标题是清楚的。让我解释一下。我有4个按钮,它们的功能基本相同Vb.net 使用内部调用的不同函数调用同一个函数,vb.net,visual-studio-2015,Vb.net,Visual Studio 2015,我希望我的标题是清楚的。让我解释一下。我有4个按钮,它们的功能基本相同 Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click LimiteGlobalSeparador = InputBox("Introduzca la distancia máxima entre huecos en el tubo", "Cuadro de Datos, Separaciones", "")
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
LimiteGlobalSeparador = InputBox("Introduzca la distancia máxima entre huecos en el tubo", "Cuadro de Datos, Separaciones", "")
Dim a, b, c, d, f, g As New Label
Dim o, p, q, r, s, t As New Label
a.Text = "Medida del Tubo"
b.Text = "Espacio 1"
c.Text = "Espacio 2"
d.Text = "Espacio 3"
f.Text = "Espacio 4"
g.Text = "Espacio 5"
For i = 0 To 5
TableLayoutPanel1.Controls.Add(a, 0, i)
Next
If TextBox1.Text <> 0 Then
For j = 1 To Int(TextBox1.Text)
Dim x As New List(Of Decimal)
x = MedTuboFuncPCT()
For i = 0 To x.Count - 1
Dim lbl As New Label
lbl.Text = Math.Round(x(i), 2)
TableLayoutPanel1.Controls.Add(lbl, j, i)
Next
ContadorGlobal = ContadorGlobal + 1
Next
Else
End If
ContadorGlobal = 0
Dim h As Integer
h = Int(TextBox2.Text - TextBox1.Text)
If TextBox2.Text <> 0 Then
If h = Int(TextBox2.Text) Then
For j = 1 To Int(TextBox2.Text)
Dim x As New List(Of Decimal)
x = MedTuboFunCTCT()
For i = 0 To x.Count - 1
Dim lbl As New Label
lbl.Text = Math.Round(x(i), 2)
TableLayoutPanel1.Controls.Add(lbl, j, i)
Next
ContadorGlobal = ContadorGlobal + 1
Next
Else
ContadorGlobal = 0
For j = Int(1) + Int(TextBox1.Text) To (Int(TextBox1.Text) + Int(TextBox2.Text))
Dim x As New List(Of Decimal)
x = MedTuboFunCTCT()
For i = 0 To x.Count - 1
Dim lbl As New Label
lbl.Text = Math.Round(x(i), 2)
TableLayoutPanel1.Controls.Add(lbl, j, i)
Next
ContadorGlobal = ContadorGlobal + 1
Next
End If
End If
ContadorGlobal = 0
If TextBox3.Text <> 0 Then
Dim x As New List(Of Decimal)
x = MedTuboFuncPP()
For i = 0 To x.Count - 1
Dim lbl As New Label
lbl.Text = Math.Round(x(i), 2)
TableLayoutPanel1.Controls.Add(lbl, 1, i)
Next
End If
If Te180 > 0 Then
o.Text = "Medida del Tubo"
p.Text = "Espacio 1"
q.Text = "Espacio 2"
r.Text = "Espacio 3"
s.Text = "Espacio 4"
t.Text = "Espacio 5"
For i = 6 To 11
TableLayoutPanel1.Controls.Add(o, 0, i)
Next
End If
End Sub
Private子按钮2\u单击(发送者作为对象,e作为事件参数)处理按钮2。单击
LimiteGlobalSeparador=输入框(“tubo中心距离介绍”、“数据、分类”和“)
尺寸a、b、c、d、f、g作为新标签
尺寸o、p、q、r、s、t作为新标签
a、 Text=“Medida del Tubo”
b、 Text=“Espacio 1”
c、 Text=“Espacio 2”
d、 Text=“Espacio 3”
f、 Text=“Espacio 4”
g、 Text=“Espacio 5”
对于i=0到5
TableLayoutPanel1.Controls.Add(a,0,i)
下一个
如果是TextBox1.Text 0,则
对于j=1到Int(TextBox1.Text)
尺寸x作为新列表(十进制)
x=MedTuboFuncPCT()
对于i=0到x,计数为-1
作为新标签的Dim lbl
lbl.Text=Math.Round(x(i),2)
TableLayoutPanel1.控件.添加(lbl,j,i)
下一个
ContadorGlobal=ContadorGlobal+1
下一个
其他的
如果结束
ContadorGlobal=0
作为整数的Dim h
h=Int(TextBox2.Text-TextBox1.Text)
如果是TextBox2.Text 0,则
如果h=Int(TextBox2.Text),则
对于j=1到Int(TextBox2.Text)
尺寸x作为新列表(十进制)
x=MedTuboFunCTCT()
对于i=0到x,计数为-1
作为新标签的Dim lbl
lbl.Text=Math.Round(x(i),2)
TableLayoutPanel1.控件.添加(lbl,j,i)
下一个
ContadorGlobal=ContadorGlobal+1
下一个
其他的
ContadorGlobal=0
对于j=Int(1)+Int(TextBox1.Text)到(Int(TextBox1.Text)+Int(TextBox2.Text))
尺寸x作为新列表(十进制)
x=MedTuboFunCTCT()
对于i=0到x,计数为-1
作为新标签的Dim lbl
lbl.Text=Math.Round(x(i),2)
TableLayoutPanel1.控件.添加(lbl,j,i)
下一个
ContadorGlobal=ContadorGlobal+1
下一个
如果结束
如果结束
ContadorGlobal=0
如果是TextBox3.Text 0,则
尺寸x作为新列表(十进制)
x=MedTuboFuncPP()
对于i=0到x,计数为-1
作为新标签的Dim lbl
lbl.Text=Math.Round(x(i),2)
TableLayoutPanel1.Controls.Add(lbl,1,i)
下一个
如果结束
如果Te180>0,则
o、 Text=“Medida del Tubo”
p、 Text=“Espacio 1”
q、 Text=“Espacio 2”
r、 Text=“Espacio 3”
s、 Text=“Espacio 4”
t、 Text=“Espacio 5”
对于i=6到11
TableLayoutPanel1.Controls.Add(o,0,i)
下一个
如果结束
端接头
所以我试着创建一个子按钮,然后每个按钮调用这个子按钮,这样我就不会像现在这样在每个按钮中重复代码。唯一的变化是:
一个按钮调用这个函数<代码>x=MedTuboFuncPCT()。
另一个调用x=MedTuboFuncPCTVid()
另一个调用
我不知道如何制作一个能让我改变现状的潜艇。希望我足够清楚。提前感谢。创建您的函数并发送其中的值,以便您可以更改
x
函数
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
VFunction = 1
RepeatedCode(VFunction)
End Sub
按按钮2VFunction=2
依此类推。然后创建你的函数
Public Sub RepeatedCode (ByVal VFunction as integer)
If VFunction = 1 Then
x = MedTuboFuncPCT()
ElseIf VFunction = 2 Then
x = MedTuboFuncPCTVid()
ElseIf VFunction = 3 Then
x = MedTuboFuncPCT()
End If
'The Rest of your code
我相信If
条件必须放在If文本框1.Text 0
因为它是我看到您使用您提到的函数之一的唯一地方,所以您应该尝试编写方法来完成一件简单的事情。据我所知,这个点击事件有5个。如果每个块都是它自己的子块,则可以混合并匹配“通用”“根据需要使用更精细的:。简单性是可重用性的核心。顺便说一句,似乎创建了大量从未使用或处理过的标签。您还应该启用
选项Strict
,以便IDE可以警告您可疑的类型转换。谢谢您的建议。我正在为我的公司做一个项目。我不是程序员,但我知道一些基本的东西,喜欢编程。所以我为这个程序编写的第一个代码就是一次又一次的重复代码。当我想在新程序中添加一些东西时,我意识到我需要使我的代码更简单,否则每次我试图添加一些东西时,我都会很挣扎。再次感谢您的建议,因为我希望代码简单。我想你已经在我的一个问题上帮了我!编辑:所有的标签都被使用,顺便说一句:)哦,是的,你说得对!我只是运行程序,没有使用一些标签。我以前的代码是:a.Text=“Medida del Tubo”b.Text=“Espacio 1”c.Text=“Espacio 2”d.Text=“Espacio 3”f.Text=“Espacio 4”g.Text=“Espacio 5”TableLayoutPanel1.Controls.Add(a,0,0)TableLayoutPanel1.Controls.Add(b,0,1)TableLayoutPanel1.Controls.Add(c,0,2)TableLayoutPanel1.Controls.Add(d,0,0,3)TableLayoutPanel1.Controls.Add(f,0,4)TableLayoutPanel1.控件.添加(g,0,5)我试图使用for循环,但我刚刚意识到我的错误。我认为这可能正好有效!谢谢你的想法。这正是我想要的。