我做了两个变量:
Public a as Integer
Public b as Integer
我有一个文本字段,其中可以插入2个值:“1 - 10” 所以我将值拆分并将它们保存在那两个变量a和b中。
但是我需要不同形式的那两个值,但我得到的只是0。
我还在form2中创建了Dim c as form1 = new form1
。
有什么问题?
答案 0 :(得分:0)
嗯,我不确定你想要的是什么,但这里有一些建议:
如果你的form1包含两个变量,那么:
Public a As Integer = 0
Public b As Integer = 0
并且您希望从另一个表单中检索其中一个变量的值,比如说Form2,然后您需要做的就是:
(将此代码放在函数或第二个表单的事件中(例如Form2)):
dim current_a As Integer = 0
current_a = Form1.a
dim current_b As Integer = 0
current_b = Form1.b
如果您在文本框中输入文本(例如:“1 - 10”),但想要同时获取两个值(在本例中为1和10),则只需要通过例如创建循环,搜索这些值,如下所示:
dim textbox_str As String = ""
textbox_str = TextBox1.Text
(在此示例中,TextBox1.Text将包含“1 - 10”)
dim final_str1 As String = ""
dim final_str2 As String = ""
for each s_ As String In textbox_str
If Not s_ = " " Then
final_str1 = final_str1 & s_
Else
Exit For
End If
Next
(在此之后,final_str1将包含“1”) (现在通过执行以下操作提取第二个数字:)
final_str2 = textbox_str.Replace(final_str1 & " - ", "")
(现在,final_str2将包含“10”) (所以你将从该文本中提取两个数字)
正如我所说,我并不完全知道你想要什么,但希望这对你有所帮助,请告诉我你是否正在寻找它!
答案 1 :(得分:0)
根据Form1和Form2之间的关系,您可以使用此类通信(这适用于父子关系):
表格2:
Public ParentFrm as Form1
Public a as Int16
表单1 - 在其正在运行的实例中:
Public b as Int16
Dim NewInstanceOfForm2 as New Form2
NewInstanceOfForm2.ParentFrm = Me ' this is to ensure you can talk back to correct instance of parent form
NewInstanceOfForm2.a = 12345
NewInstanceOfForm2.BackColor = colors.Pink
NewInstanceOfForm2.TextBox1.Text = "Hello World!!!"
由于我们在Form2中设置了ParentFrm,因此您可以以相同的方式返回并在Form1中设置内容:
ParentFrm.b = 789
ParentFrm.TextBox3 = "Hi there!!!"
ParentFrm.UpdateForm1FromDatabasePublicFunction()
兄弟姐妹可以通过共同的父母进行交流。但在所有情况下,您需要了解表单的实例。请记住,您只能与表单中的对象(TextBox,Button,DataGridView,...)和公共变量进行通信。
答案 2 :(得分:0)
您可以创建一个模块并将变量定义为puclic,这样它们始终可以从应用程序的任何位置访问。
右键单击解决方案,Add New,Module
在该模块中添加
公开a,b为整数
要拆分文本框输入并将它们存储在这些变量中,请使用
Dim s as String
Dim sp() as String
s = TextBox1.Text
sp = s.Split("-")
它将值存储在文本框中,分别用' - '分隔在sp(0)和sp(1)上。
然后,您可以将它们存储到公共变量中。
a = sp(0)
b = sp(1)
然后从你需要的任何形式打电话。