» 您尚未登录:请 登录 | 注册 | 标签 | 帮助 | 小黑屋 |


 16 12
发新话题
打印

[电脑] VB求助之二@@窗体加载相关。。。@@

貌似问题越来越弱智了。。

现在有2个窗体,form1,form2。
我想在程序启动的时候,显示form1窗体(设为主窗体),但同时加载form2(因为form2里面有通讯的部分,要做一些初始化。。)

form1内,有一command1,其click()事件代码如下。。

Private Sub Command1_Click()
form2.Load
form2.Command23_Click   ’form2内通讯启动按钮
End Sub

运行提示编译错误,未找到方法或数据成员。
Command23_Click被加兰选中。。

我怀疑问题是form2并没有被加载,因为删掉form2.Load效果一样,可是又不知道怎么实现。。

请各路高手帮忙诊断一下问题出在哪。谢谢大家


TOP

你把form2添加到form1的引用的对象里面了么...

VB我没搞过,但应该有一个类似这样的步骤吧...



TOP

VB早忘了。你确定是写form2.Load?
可能不是写form2而是别的名称


TOP

引用:
原帖由 arex 于 2008-12-19 23:33 发表
你把form2添加到form1的引用的对象里面了么...

VB我没搞过,但应该有一个类似这样的步骤吧...
学艺不精

赶紧翻书+BAIDU一下。。。

TOP

引用:
原帖由 gwm0000 于 2008-12-19 23:50 发表
VB早忘了。你确定是写form2.Load?
可能不是写form2而是别的名称
绝对确定。。
我怀疑form2.Load这条语句是没用的。因为打到form2.L这里时,并没有自动提示的下拉条出现。如果打form2.S的时候就会有,里面可以直接选择Show。。。
所以我怀疑这个语法,本身就有问题,但是并没有报错。

在form2里,也有类似的语句。比如:
Form1.Shape2(7).FillColor = &HFF&
是可以运行的。

TOP

我确实是忘的差不多了。在同一程序里的form会不会一开始就加载好了?

TOP

LOAD事件的写法是
LOAD OBJECT

TOP

引用:
原帖由 gwm0000 于 2008-12-20 00:03 发表
我确实是忘的差不多了。在同一程序里的form会不会一开始就加载好了?
这个。。我也不太清楚。。。

TOP

我写了一个小程序做实验。。。
2个窗口。

form1代码:
Private Sub Form_Load()
MsgBox ("HELLO1")
End Sub

Private Sub Command2_Click()
Form2.Show
End Sub

form2代码:
Private Sub Form_Load()
MsgBox ("HELLO2")
End Sub

运行结果:
启动,弹出hello1
按下command2。弹出HELLO2。并显示form2
看来不是一开始就加载好了的。。。

TOP

既然不是加载好的。。。。继续实验。。。发现新问题。。

即使不加载,通过form1里的command控件,也可以改变form2内容,比如text之类。。。已经可以实现!!

可是我最初程序还是不行。。。也不知道为什么。。。

TOP

能不能把通讯的部分做到模块里?

[ 本帖最后由 bobykid 于 2008-12-20 01:00 编辑 ]

TOP

把Command23_Click事件里的代码写成方法
然后再直接调用,最好不要直接调用别的窗体的事件,这个习惯不好...............

TOP

引用:
原帖由 leonWong 于 2008-12-20 12:16 发表
把Command23_Click事件里的代码写成方法
然后再直接调用,最好不要直接调用别的窗体的事件,这个习惯不好...............

command23_click事件本身也是去调用一个text_change事件。。。
我想到用调用别的窗体事件正是受了这个启发。。。

另外我发现一个问题。。。
如果愣要调用别的窗口里的事件,还调用不到command_click,提示编译错误,但如果调用text_change就可以顺利执行
不知道这是为什么。。?

TOP

public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            Form2 _form2 = new Form2();
            _form2.button1_Click(this,EventArgs.Empty);
        }
    }

    public partial class Form2 : Form
    {
        public Form2()
        {
            InitializeComponent();
        }

        public void button1_Click(object sender, EventArgs e)
        {
            MessageBox.Show("test");
        }
    }

语言 c# 环境vs2005 能正常显示test。
注意默认的点击事件是private的,你要被别的窗体调用必须把他改为public。

TOP

谢谢LS朋友热心帮助。尽管你写的东西我基本看不懂。。。。。

TOP

 16 12
发新话题
     
官方公众号及微博