窗体间调用和控件赋值的问题,急,请高手帮忙!
我的主窗体为Form1
窗体上有一个textbox1控件,一个timer控件,一个mapinfo object
定义了一个回调函数 line(),在一个clsline.vb类下面
程序加载时运行了mymapinfo.Do(create Buttonpad ""callbak" As Toolbutton ID 2003 drawmode 34 cursor 0 calling OLE “line”) ‘(这行是说当mapinfo控件执行 ID 2003 工具时调用 line函数)
public Sub line(Byval zCmdstr As sting)
{
....
Form1.timer1.Enable=true
...
}
Private Sub timer1_tick()
{
timer1.enable=False
me.TextBox1.Text="aaa"
MsgBox(me.TextBox1.Text) '这行可以显示aaa,但是Form1上面TextBox.Text还是bbb
}
程序执行时点击工具栏按钮,运行 mapinfo 的ID 2003工具,则调用tool()函数,然后执行time1_tick,可是对me.TextBox1.Text赋值没有作用,
就是比如me.textbox1.text原来的值是“bbb”
在函数中执行了:me.textbox1.text=“aaa”
msgbox(me.textbox1.text),弹出的对话框显示“aaa”,(说明在函数体中已经赋值了)
但是运行完该函数textbox1.text的值还是“bbb”
如果我在timer1_tick()函数中给其它的Form2上的textbox2赋值,并show(),每次点击都会显示出一个新建的Form2。好像是自动new了一个新的Form2。也就是说明我在给Form1.textbox1赋值的时候也是新建了一个Form1并赋值的,所以显示不出来。
我改为
dim f as form=new Form1后, 并用f.show()显示主窗体,则每次执行me.TextBox1.Text="aaa"就会出错,自动跳出。
我该如何调用窗体啊,我认为应该用dim f as form=new Form1, 并用f.show()的方法,可是这样timer_tick函数里面对自身控件赋值时可以用me.textbox1.text控件赋值吗,为什么出错?请高手帮忙??????急