c#如何在自定义控件获取宽高类中获取窗口控件?

求助?c#有两个窗口,如何调用另一窗口的控件?-c/c++-电脑编程网求助?c#有两个窗口,如何调用另一窗口的控件?作者:linofficewhl 和相关&&Form1 有个listbox1,Form2有个textbox1,button1.最终结果:按form2的button1按钮,把textbox1.text的值添加到form1的listbox1中本人试过把listbox1设成public,在form2中private void button2_Click(object sender, EventArgs e){Form1 pForm1=new Form1();pForm1.listbox1.items.add(textbox1.text);
& &}经过试验。。。form1中的listbox1没反应。。没出错,没有添加到任何东西!!如何做才对??知道的各位大侠能否告诉一下小弟!------回答---------------其他回答(2分)---------private void button2_Click(object sender, EventArgs e)& {& Form1 pForm1=Form1(Application.OpenForms[&Form1&]);& pForm1.listbox1.items.add(textbox1.text);
& }& 要理解new的意思,既然写了new,那就是新生成的一个实例,跟你已经存在的Form1不是一回事------其他回答(1分)---------Form1 pForm1=new Form1();& pForm1没有显示啊!怎么看啊?------其他回答(2分)---------//form1 调用Form2
frm=new Form2();form.ShowDialog (this);private void button2_Click(object sender, EventArgs e)& {& Form1 pForm1=( Form1)this.O& pForm1.listbox1.items.add(textbox1.text);
& }& && *****************************************************************************欢迎使用CSDN论坛专用阅读器 : CSDN Reader(附全部源代码)& /------其他回答(2分)---------form1中加入:Form2 dlg = new Form2();dlg.Owner =dlg.ShowDialog();同时设置listBox1的属性为publicform2中加入:private void button1_Click(object sender, EventArgs e){&
Form1 pForm1 = (Form1)this.O&
pForm1.listBox1.Items.Add(textBox1.Text);}------其他回答(1分)---------引用 1 楼 Ring_Pt 的回复:private void button2_Click(object sender, EventArgs e) { Form1 pForm1=Form1(Application.OpenForms[&Form1&]); pForm1.listbox1.items.add(textbox1.text);
} 要理解new的意思,既然写了new,那就是新生成的一个实例,跟你已经存在的Form1不是一回事------其他回答(1分)---------C# code
((ListBox)Application.OpenForms[&Form1&].Controls.Find(&listbox1&, true)[0]).Items.Add(textbox1.text);
------其他回答(2分)---------引用 1 楼 Ring_Pt 的回复:private void button2_Click(object sender, EventArgs e) { Form1 pForm1=Form1(Application.OpenForms[&Form1&]); pForm1.listbox1.items.add(textbox1.text);
} 要理解new的意思,既然写了new,那就是新生成的一个实例,跟你已经存在的Form1不是一回事------其他回答(1分)---------Form1 pForm1=new Form1();& -------------这句将生成一个隐藏的Form,因为你没让这个form show出来.在form2中需要一个form1的引用,要保证他就是你要的那个form1.Form1 pForm1=(Form1)Application.OpenForms[&Form1&]这么做可以得到之前的对象,然后再按你那么做就可以了.------其他回答(1分)---------private void button2_Click(object sender, EventArgs e)& {& Form1 pForm1=Form1(Application.OpenForms[&Form1&]);& pForm1.listbox1.items.add(this.textbox1.text);
& }& ------其他回答(3分)---------在form2 中定x一事件 clickEform2 的button_clickr,t|l@事件button_click(object sender,evetargs e){& if(clickEvent!=null)&
clickEvent(this,e);}form1 中在建form2的οr@form2 frm=new form2();frm.clickEvent+=new EventHandle(addItem);frm.show();private void addItem(object sender,eventArgs e){&
form2 frm=sender as form2;&
this.listbox1.items.add(frm.textBox1.text);}包你可以!!------其他回答(1分)---------引用 17 楼 wartim 的回复:引用 10 楼 Dobzhansky 的回复:跨窗口的控件访问,  要砍头的, 非常SB的做法.这种简单问题用事件、委托、参数不觉得杀鸡用牛刀么,练ms都觉得提供个OpenForms比较省事,而且绝对不会错,把简单事情复杂化,孤芳自赏,标榜技术没有意义,public static FormCollection OpenForms { }这个跟暴露窗体内控件对象有何相同的地方吗?稍微上点规模的程序都不建议将控件 public 出来, 不知道你说的复杂化来自哪里.如果这也算作孤芳自赏, 标榜技术, 那你对技术的理解也忒低了.------其他回答(1分)---------引用 20 楼 Dobzhansky 的回复:public static FormCollection OpenForms { } 这个跟暴露窗体内控件对象有何相同的地方吗? 稍微上点规模的程序都不建议将控件 public 出来, 不知道你说的复杂化来自哪里. 如果这也算作孤芳自赏, 标榜技术, 那你对技术的理解也忒低了.((ListBox)Application.OpenForms[&Form1&].Controls.Find(&listbox1&, true)[0]).Items.Add(textbox1.text);是不要求把listbox1 public出来的,默认的private就可以,你先试过------其他回答(2分)---------委托事件form1using Susing System.Collections.GponentMusing System.Dusing System.Dusing System.Lusing System.Tusing System.Windows.Fnamespace WindowsFormsApplication1{&
public partial class Form1 : Form&
public Form1()&
InitializeComponent();&
private void button1_Click(object sender, EventArgs e)&
Form2 f = new Form2();&
f.Show();&
f.Myevet += new Form2.Mydel(f_Myevet);&
void f_Myevet(string str)&
listBox1.Items.Add(str);&
//throw new NotImplementedException();&
}}form2using System.Collections.GponentMusing System.Dusing System.Dusing System.Lusing System.Tusing System.Windows.Fnamespace WindowsFormsApplication1{&
public partial class Form2 : Form&
public delegate void Mydel(string str);&
public event Mydel M&
public Form2()&
InitializeComponent();&
private void button1_Click(object sender, EventArgs e)&
if (Myevet != null)&
Myevet(textBox1.Text);&
}}------回答---------------其他回答(2分)---------private void button2_Click(object sender, EventArgs e)& {& Form1 pForm1=Form1(Application.OpenForms[&Form1&]);& pForm1.listbox1.items.add(textbox1.text);
& }& 要理解new的意思,既然写了new,那就是新生成的一个实例,跟你已经存在的Form1不是一回事------其他回答(1分)---------Form1 pForm1=new Form1();& pForm1没有显示啊!怎么看啊?------其他回答(2分)---------//form1 调用Form2
frm=new Form2();form.ShowDialog (this);private void button2_Click(object sender, EventArgs e)& {& Form1 pForm1=( Form1)this.O& pForm1.listbox1.items.add(textbox1.text);
&& *****************************************************************************欢迎使用CSDN论坛专用阅读器 : CSDN Reader(附全部源代码)& /------其他回答(2分)---------form1中加入:Form2 dlg = new Form2();dlg.Owner =dlg.ShowDialog();同时设置listBox1的属性为publicform2中加入:private void button1_Click(object sender, EventArgs e){ &
Form1 pForm1 = (Form1)this.O &
pForm1.listBox1.Items.Add(textBox1.Text);}------其他回答(1分)---------引用 1 楼 Ring_Pt 的回复:private void button2_Click(object sender, EventArgs e) { Form1 pForm1=Form1(Application.OpenForms[&Form1&]); pForm1.listbox1.items.add(textbox1.text);
} 要理解new的意思,既然写了new,那就是新生成的一个实例,跟你已经存在的Form1不是一回事------其他回答(1分)---------C# code
((ListBox)Application.OpenForms[&Form1&].Controls.Find(&listbox1&, true)[0]).Items.Add(textbox1.text);
------其他回答(2分)---------引用 1 楼 Ring_Pt 的回复:private void button2_Click(object sender, EventArgs e) { Form1 pForm1=Form1(Application.OpenForms[&Form1&]); pForm1.listbox1.items.add(textbox1.text);
} 要理解new的意思,既然写了new,那就是新生成的一个实例,跟你已经存在的Form1不是一回事------其他回答(1分)---------Form1 pForm1=new Form1();& -------------这句将生成一个隐藏的Form,因为你没让这个form show出来.在form2中需要一个form1的引用,要保证他就是你要的那个form1.Form1 pForm1=(Form1)Application.OpenForms[&Form1&]这么做可以得到之前的对象,然后再按你那么做就可以了.------其他回答(1分)---------private void button2_Click(object sender, EventArgs e)& {& Form1 pForm1=Form1(Application.OpenForms[&Form1&]);& pForm1.listbox1.items.add(this.textbox1.text);
& }& ------其他回答(3分)---------在form2 中定x一事件 clickEform2 的button_clickr,t|l@事件button_click(object sender,evetargs e){ & if(clickEvent!=null) &
clickEvent(this,e);}form1 中在建form2的οr@form2 frm=new form2();frm.clickEvent+=new EventHandle(addItem);frm.show();private void addItem(object sender,eventArgs e){ &
form2 frm=sender as form2; &
this.listbox1.items.add(frm.textBox1.text);}包你可以!!------其他回答(1分)---------引用 17 楼 wartim 的回复:引用 10 楼 Dobzhansky 的回复:跨窗口的控件访问,  要砍头的, 非常SB的做法.这种简单问题用事件、委托、参数不觉得杀鸡用牛刀么,练ms都觉得提供个OpenForms比较省事,而且绝对不会错,把简单事情复杂化,孤芳自赏,标榜技术没有意义,public static FormCollection OpenForms { }这个跟暴露窗体内控件对象有何相同的地方吗?稍微上点规模的程序都不建议将控件 public 出来, 不知道你说的复杂化来自哪里.如果这也算作孤芳自赏, 标榜技术, 那你对技术的理解也忒低了.------其他回答(1分)---------引用 20 楼 Dobzhansky 的回复:public static FormCollection OpenForms { } 这个跟暴露窗体内控件对象有何相同的地方吗? 稍微上点规模的程序都不建议将控件 public 出来, 不知道你说的复杂化来自哪里. 如果这也算作孤芳自赏, 标榜技术, 那你对技术的理解也忒低了.((ListBox)Application.OpenForms[&Form1&].Controls.Find(&listbox1&, true)[0]).Items.Add(textbox1.text);是不要求把listbox1 public出来的,默认的private就可以,你先试过------其他回答(2分)---------委托事件form1using Susing System.Collections.GponentMusing System.Dusing System.Dusing System.Lusing System.Tusing System.Windows.Fnamespace WindowsFormsApplication1{ &
public partial class Form1 : Form &
public Form1() &
InitializeComponent(); &
private void button1_Click(object sender, EventArgs e) &
Form2 f = new Form2(); &
f.Show(); &
f.Myevet += new Form2.Mydel(f_Myevet); &
void f_Myevet(string str) &
listBox1.Items.Add(str); &
//throw new NotImplementedException(); &
}}form2using System.Collections.GponentMusing System.Dusing System.Dusing System.Lusing System.Tusing System.Windows.Fnamespace WindowsFormsApplication1{ &
public partial class Form2 : Form &
public delegate void Mydel(string str); &
public event Mydel M &
public Form2() &
InitializeComponent(); &
private void button1_Click(object sender, EventArgs e) &
if (Myevet != null) &
Myevet(textBox1.Text); &
}}相关资料:|||||||求助?c#有两个窗口,如何调用另一窗口的控件?来源网络,如有侵权请告知,即处理!编程Tags:                &                    天极传媒:天极网全国分站
您现在的位置: &&在C#中使用属性控件为应用程序添加属性窗口
在C#中使用属性控件添加属性窗口
天极软件频道 11:33
  在VS.NET 中,我们可以很方便地使用属性窗口来对某个控件的属性进行设置,那么,我们有没有想过,如果在程序中,在对程序中的自定义的属性进行设置时,显示一个象属性窗口一样的窗体,能对其中的属性方便的设置呢?就象下图所示的一样。
  答案是完全可以的。我们可以使用提供的property属性控件来实现该功能。首先,我们新建一个#的windows应用程序,之后在工具箱中,右键点选工具箱(TOOLBOX),在弹出的菜单中选择“添加/移除项”,如下图所示:
  在弹出的窗口中,选择.NET Freamwork components窗口,再选择其中的property grid控件,点击选择就完成了对控件的加入,如下图所示:
(作者:廖煜嵘编译责任编辑:方舟)
欢迎在新浪微博上关注我们
* 网友发言均非本站立场,本站不在评论栏推荐任何网店、经销商,谨防上当受骗!
笔记本手机数码家电C#中如何在一个类里访问主窗体中的控件
[问题点数:40分,结帖人ruby0602]
C#中如何在一个类里访问主窗体中的控件
[问题点数:40分,结帖人ruby0602]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
2010年 总版技术专家分年内排行榜第一2009年 总版技术专家分年内排行榜第一
2011年 总版技术专家分年内排行榜第二
本帖子已过去太久远了,不再提供回复功能。C#中子窗体获取父窗体中控件的内容
来源:博客园
今天在做一个联系人管理的C#设计时,遇到了这个问题,我需要将父窗体中的textBox中的值传到子窗体并进行数据库查询操作,我用了 new 父窗体().textBox. 来进行值传递,然而并无卵用,经过多次试验,找到了一个比较简单的解决方法: 父窗体: Logout 子窗体: Affirm 父窗体文本框: tB_Logout_Username public partial class Logout : Form { //定义一个静态变量存放父窗体中的文本框的值 public static string tB_LogoutN //实例化子窗体的事件 private void btt_Logout_Click(object sender, EventArgs e) { //获取父窗体中的文本框的值 tB_LogoutName = tB_Logout_Username .T Affirm aff = new Affirm (); aff.Show(); } } 接下来要在子窗体中调用就可以直接:父窗体.变量 即: Logout . tB_LogoutName 总结:这个方法显得比较取巧,按理说应该先找到获取父窗体的方法,然后再对其进行操作,在此仅供借鉴,希望对同样出现此问题的你有所帮助,也欢迎大神们给出更好的方法。
免责声明:本站部分内容、图片、文字、视频等来自于互联网,仅供大家学习与交流。相关内容如涉嫌侵犯您的知识产权或其他合法权益,请向本站发送有效通知,我们会及时处理。反馈邮箱&&&&。
学生服务号
在线咨询,奖学金返现,名师点评,等你来互动

我要回帖

更多关于 自定义控件获取宽高 的文章

 

随机推荐