编程论坛's Archiver

f80051235 发表于 2008-5-11 10:37

急~~~~~~~~~~~~~~~~~~

本人用C#编记事本查找这个一功能时,我在在子窗体(Form_find)代码下想获得主窗体(Form_Main)的textbox1.text怎么获取呀。
我看到参考书是string text=((Form_Main)this.Owner).TextBox1.Text
但是我打到((Form_Main)this.Owner)。后面没有TextBox1啊~
请问一下这是为什么~~~~
各位大哥帮下忙~~~~
很急~~~~~~~~~~~~~~~
在线等~~~~~~~~~~~~~~~~~~~~~

每天开心点 发表于 2008-5-11 12:49

你可以传个参数给子窗体就OK了.
再子窗体写多个构造函数.
//写在子窗体里面.
public Form_find(string message)
        {
            InitializeComponent();
            this.message = message
        }

然后当你在Form_find ff = new Form_find()的时候,带个参数进去就可以了.
也就是Form_find ff = new Form_find(TextBox1.Text);

善莫於水 发表于 2008-5-11 12:51

在TextBox1的属性配置窗口中将 修饰符 改为public(该属性是其设计器添加的,在类中实际并没有这个属性)

每天开心点 发表于 2008-5-11 12:52

如果要按你那种做法的发.你要去Form_Main的Windows 窗体设计器生成的代码里面把TextBox1的访问修饰符改成public(公有)的`因为默认是私有的.所以你是点不出来的.

善莫於水 发表于 2008-5-11 12:57

没有必要去Windows 窗体设计器生成的代码里面,因为你改不过来的,每次Debug设计器也会重新生成的。
在属性窗口中配置。可以找到相关的配置项的。

每天开心点 发表于 2008-5-11 13:02

为什么改不过来?就改下保存OK了.跟你说的去属性修改是一样的.

善莫於水 发表于 2008-5-11 13:07

[quote][bo]以下是引用 [un]每天开心点[/un] 在 2008-5-11 13:02 的发言:[/bo]

为什么改不过来?就改下保存OK了.跟你说的去属性修改是一样的. [/quote]
因为设计器都会在需要更新代码的时候重新根据你设置的属性以及相关附加属性进行重新生成,你的改动将被重新生成而覆盖。

f80051235 发表于 2008-5-11 14:15

[quote][bo]以下是引用 [un]善莫於水[/un] 在 2008-5-11 12:51 的发言:[/bo]

在TextBox1的属性配置窗口中将 修饰符 改为public(该属性是其设计器添加的,在类中实际并没有这个属性) [/quote]



谢谢大家的回答
就是那个 我在TextBox1的属性配置窗口中没有看倒 修饰符  这个属性呀~~~这个属性叫什么名字呀?我是新手,有很多不懂。望大家见谅~~

页: [1]

Powered by Discuz! Archiver 6.1.0  © 2001-2007 Comsenz Inc.