如何引用另一个form上的控件???(20分)

Z

zjwyyh

Unregistered / Unconfirmed
GUEST, unregistred user!
如何引用另一个form上的控件???
form1上有个imagelist, 在form2上直接引用form1的imagelist为按钮设置图标(不用再创建一个imagelist)???
另外,我已将 form1上的imagelist 访问属性设置成了 public。程序中生成form1实例再引用,肯定可以,但在设计期 怎么能看到呢???
 
在 implementation
处的 uses 语句上加上 form1即可。
或者点击File->Add Unit菜单,然后选择 Form1 即可。呵呵。建议用Data Modal窗口来共享控件
 
老大看清楚了,这是C#不是delphi
 
o, sorry![:D][:D]
 
嗬嗬,把控件声明部分的private 换成public,然后new一个Form,就可以用form.控件了。[:D]
 
Endy.Vee 兄:
对于程序的共享数据集,我也是这样使用的。但这样只能在程序代码中使用。我所希望的是象delphi一样,只要引用了另一个form,在设计期(对象面板中)就能看到另一个form上的控件。
譬如,两个form上都需要 一个imagelist控件来存储图标,能不能只在一个form 上建另一个只要引用了这个form在它的对象面板中就可以使用这个imagelist(象delphi一样)?
 
好像不能吧 你可以用代码进行引用 多方便哈
来自:Endy.Vee, 时间:2004-1-2 12:59:00, ID:2389008
嗬嗬,把控件声明部分的private 换成public,然后new一个Form,就可以用form.控件了。[:D
 
嘻嘻,不知道了[:D]
 
DELPHI的类封装根本体现不出来,
 
在设计时,form2好象还没创建吧
 
举一例
在Form2里先
public string caption
{
set{this.label1.Text=value;}
get{return this.label1.Text;}
}

在Form1里就可以这样更改
private void menuItem2_Click(object sender, System.EventArgs e)
{
Form2 aForm=new Form2();
aForm.MdiParent=this;
aForm.caption="干革命";
aForm.Show();
}
 
谢谢Dinky的回答
在脚本中引用另一个form上的公有属性或方法,肯定没问题。
我所希望的是象Delphi的form一样,一个form上定义了一个控件(比如imagelist),另一个form只要引用了那个form,在设计期(注意不是在脚本中)就可以使用这个imagelist中的图片。
谢谢!
 
Delphi和C#可能相差太大.C#不是像我们以前用的Delphi一样傻瓜式的。如果可以再相告
 
没有办法. 设计时, form2都不知道form1的存在. 运行时也得先new出一个form1, 再new form2, 然后用代码实现.
注意, form1和form2都是类, 而不是对象, 在运行时, 在类自己的方法里是可以肯定自己已经被创建了, 可是你如何知道其他对象已经被创建?
假设说, 你来设计一个IDE的设计环境, 想象一下, 在你的form2里加入对form1成员的引用, 你会如何设计UI? 给一个下拉框, 选择form1, 然后再选择一下成员? 可是form1是一个类, 不是一个实际对象, 类的定义是形式化, 成员也是形式化的, 你如何如决定运行时引用哪一个form1的实例对象的成员?
另: delphi里, 是不是像vb一样, form设计之后, 即是类定义, 又意味着一个全局对象?
 
haoxiaobo 兄:
说的极是,
delphi 在定义类的同时一定生成了一个同名的全局对象。
如此说来,这个问题再讨论意义就不大了。
是吗?
 
C#的OOP实现是很纯粹的, 我想MS恐怕不会为了造成这种混乱而去改C#的规范. :D
 
多人接受答案了。
 
顶部