遇到一菜题:在程序中,一个窗体的控件要用户输入值(如单位名称),为了让用户可选择预先保存的值,此时可以弹出另一含有TREEVIEW的窗体,让用户在其中选择,双击一节点,其值自动填入前一窗体的相应TEXT中(有几个TEXT,但只能填入调用后一窗体的TEXT中),而后一窗体自动消失.我用过SETWINDOWTEXT函数和几个PUBLIC变量配合来传递选中的节点值,可以实现,但效果不好.期待有更好的解决方法.

解决方案 »

  1.   

    form2.show vbmodel
    ...form2_onunload
    form1.............
      

  2.   

    form1Private Sub Text1_DblClick()
    Form2.Show
    End Subform2
    Private Sub Form_Load()
    Me.TreeView1.Nodes.Add , , , "1"
    Me.TreeView1.Nodes.Add , , , "2"
    Me.TreeView1.Nodes.Add , , , "3"
    Me.TreeView1.Nodes.Add , , , "4"
    Me.TreeView1.Nodes.Add , , , "5"
    Me.TreeView1.Nodes.Add , , , "6"
    Me.TreeView1.Nodes.Add , , , "7"
    Me.TreeView1.Nodes.Add , , , "8"
    Me.TreeView1.Nodes.Add , , , "9"
    Me.TreeView1.Nodes.Add , , , "10"
    End SubPrivate Sub TreeView1_DblClick()
    Form1.Text1.Text = Me.TreeView1.SelectedItem.Text
    Unload Me
    End Sub不知道我理解正确没有
      

  3.   

    form1Private Sub Text1_DblClick()
    Form2.Show vbModel
    End Subform2
    Private Sub Form_Load()
    Me.TreeView1.Nodes.Add , , , "1"
    Me.TreeView1.Nodes.Add , , , "2"
    Me.TreeView1.Nodes.Add , , , "3"
    Me.TreeView1.Nodes.Add , , , "4"
    Me.TreeView1.Nodes.Add , , , "5"
    Me.TreeView1.Nodes.Add , , , "6"
    Me.TreeView1.Nodes.Add , , , "7"
    Me.TreeView1.Nodes.Add , , , "8"
    Me.TreeView1.Nodes.Add , , , "9"
    Me.TreeView1.Nodes.Add , , , "10"
    End SubPrivate Sub TreeView1_DblClick()
    Form1.Text1.Text = Me.TreeView1.SelectedItem.Text
    Unload Me
    End Sub
      

  4.   

    补充楼上的,因为楼上的针对某个TextBox而已,要针对多个不同的TextBox,可以考虑声名一个全局TextBox变量form1Public CurrentTextBox As TextBox '全局TextBox变量Private Sub Text1_DblClick()
    Set CurrentTextBox = Text1 '全局变量赋值
    Form2.Show
    End SubPrivate Sub Text2_DblClick()
    Set CurrentTextBox = Text2 '全局变量赋值
    Form2.Show
    End Sub
    form2
    Private Sub Form_Load()
    Me.TreeView1.Nodes.Add , , , "1"
    Me.TreeView1.Nodes.Add , , , "2"
    Me.TreeView1.Nodes.Add , , , "3"
    Me.TreeView1.Nodes.Add , , , "4"
    Me.TreeView1.Nodes.Add , , , "5"
    Me.TreeView1.Nodes.Add , , , "6"
    Me.TreeView1.Nodes.Add , , , "7"
    Me.TreeView1.Nodes.Add , , , "8"
    Me.TreeView1.Nodes.Add , , , "9"
    Me.TreeView1.Nodes.Add , , , "10"
    End SubPrivate Sub TreeView1_DblClick()
    'Form1.Text1.Text = Me.TreeView1.SelectedItem.Text
    Form1.CurrentTextBox.Text = Me.TreeView1.SelectedItem.Text '全局变量属性赋值
    Unload Me
    End Sub这样基本上就通用了,其实也不一定要声明全局变量的,只是这时要在form2中调用API得到form1的当前活动控件就可以了