是這樣的我有一個表單1,點擊其中一個button彈出表單2.
表單2中有一個listview ,我選擇了其中的幾行,并將結果保存到公用變數里了。
現在我想要在表單2關閉之后,將這個公用變數的結果回傳給表單1的textbox1.
但是我發現總是先textbox1.text=bomstr再FrmBomList.Show,
這個textbox1的text總是空的,要如何取到表單2中的值(bomstr)?還是我的哪里不對?
Private Sub getBomInfo()
Dim bomlist As FrmBomList
FrmBomList.Show
textbox1.text=bomstr
END SUB
表單2中
Public bomstr As String
Private Sub Command2_Click()
bomstr = ""
If ListView1.ListItems.Count < 1 Then
Dim i As Integer
i = MsgBox("此Part無資訊,請確認", 16, "提示") '訊息框提示
Else
Dim PartInfo As String
PartInfo = ""
For i = 0 To ListView1.ListItems.Count - 1
'If ListView1.ListItems(I + 1).Checked = True Then
If ListView1.ListItems.Item(i + 1).Checked = True Then
PartInfo = PartInfo + CStr(ListView1.ListItems(i + 1).SubItems(1)) + "," 'i+1為定義的行數
End If
'I = I + 1
Next
If Len(PartInfo) >= 1 Then
Text1.Text = Mid(PartInfo, 1, Len(PartInfo) - 1)
bomstr = Text1.Text
End If
End If
End Sub
uj5u.com熱心網友回復:
FrmBomList.Show 1uj5u.com熱心網友回復:
謝謝樓上的大神回復,這個方法我也試過了,這也是先賦值,然后再將 frm2彈出的,在frm里面選擇資料還是影響不了frm1的結果uj5u.com熱心網友回復:
你建一個moudle,建一個全域變數就是了uj5u.com熱心網友回復:
不好意思,寫錯了,是建一個moduleuj5u.com熱心網友回復:
在Form2 中 加 一條 form1.text1.text=bomstruj5u.com熱心網友回復:
在From2 的 command2事件中 最后 加一條:From1.Text1.text=bomstr 應該就可以uj5u.com熱心網友回復:
http://zhidao.baidu.com/question/140287908.htmlhttp://zhidao.baidu.com/question/55286693.html
http://zhidao.baidu.com/question/96503971.html
uj5u.com熱心網友回復:
多謝版主大手的熱心幫忙,不過我的問題可能有一些不同。是這樣的,我這兩段代碼實際上金蝶的K3二次開發里面的東東,這個視窗實際上是要在一個控制元件上呼叫出來,所以也不能用show 1,me這樣。但是,如果不這樣調,他會直接先執行完show后面的代碼,再彈出我需要show的這個frm.....
uj5u.com熱心網友回復:
'Form1
Option Explicit
Public Property Let bomstr(ByVal RHS As String)
textbox1.Text = RHS
End Property
Private Sub getBomInfo()
FrmBomList.Action Me
End Sub
'FrmBomList
Option Explicit
Private m_OwnerForm As Form1
Public Sub Action(ByVal OwnerForm As Form1)
Set m_OwnerForm = OwnerForm
m_OwnerForm.bomstr = ""
Me.Show , OwnerForm
End Sub
Private Sub Command2_Click()
If ListView1.ListItems.Count < 1 Then
Dim i As Integer
i = MsgBox("此Part無資訊,請確認", 16, "提示") '訊息框提示'
Else
Dim PartInfo As String
PartInfo = ""
For i = 0 To ListView1.ListItems.Count - 1
'If ListView1.ListItems(I + 1).Checked = True Then
If ListView1.ListItems.Item(i + 1).Checked = True Then
PartInfo = PartInfo + CStr(ListView1.ListItems(i + 1).SubItems(1)) + "," 'i+1為定義的行數'
End If
'I = I + 1
Next
If Len(PartInfo) >= 1 Then
Text1.Text = Mid(PartInfo, 1, Len(PartInfo) - 1)
m_OwnerForm.bomstr = Text1.Text
End If
End If
End Sub
Private Sub Form_Unload(Cancel As Integer)
Set m_OwnerForm = Nothing
End Sub
uj5u.com熱心網友回復:


Form1
Private Sub Command1_Click()
Form2.Show 1
End Sub
Private Sub Command1_Click()
'strSelectedName = ""
If ListView1.ListItems.Count < 1 Then
Dim i As Integer
i = MsgBox("此Part無資訊,請確認", 16, "提示") '訊息框提示
Else
Dim PartInfo As String
PartInfo = ""
For i = 0 To ListView1.ListItems.Count - 1
'If ListView1.ListItems(I + 1).Checked = True Then
If ListView1.ListItems.Item(i + 1).Checked = True Then
'PartInfo = PartInfo + CStr(ListView1.ListItems(i + 1).SubItems(1)) + "," 'i+1為定義的行數
PartInfo = PartInfo + ListView1.ListItems(i + 1).Text + ","
End If
'I = I + 1
Next
If Len(PartInfo) >= 1 Then
'Text1.Text = Mid(PartInfo, 1, Len(PartInfo) - 1)
'bomstr = Text1.Text
Form1.Text1.Text = PartInfo
End If
End If
Unload Me
End Sub
Private Sub Form_Load()
For i = 1 To 10
Me.ListView1.ListItems.Add i, "A" + CStr(i), "Boss" + CStr(i)
Next i
End Sub
uj5u.com熱心網友回復:
后面的一段代碼是在Form2.轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/110951.html
標籤:VB基礎類
