在一个窗体中设置另一个窗体的控件属性
来源:互联网 发布:java编辑器哪个好 编辑:程序博客网 时间:2024/04/27 16:00
最经有学生问我怎么样在一个窗体中设置另一个窗体的控件属性,问题如下:
有两个form.
一个form1,一个form2.
怎么样在form2中用代码设置form1的textbox的属性
我考虑了有如下两种方法:
一、
1、在form1类中定义一个静态数据成员,来保存当前窗体对象,
如下: public static Form1 f1 = null;
2、 然后在form1窗体构造函数中,给上述静态成员初始化,如下:
public Form1()
{
InitializeComponent();
p1 = this;
}
3、 在form2中调用form1,可以通过如下方式:
”Form1.f1”,
例如: Form1.f1.textBox1.Text="你想设置的值";
以上所做的,只是让你能够访问当前form1对象或form2窗体对象,如果想操作控件,可以直接修改控件的成员访问符,即可以把”private”修改成”public”。当然最好的还是可以用增加公有属性的做法,这样不会破坏类本身的封装。
如下:
public string Text_Box
{
get { return textBox1.Text; }
set { textBox1.Text = value; }
}
在form2的button_click事件中添加
Form1.p1.Text_Box = "你想设置的值";
这样就ok了!
源代码如下
Form1的代码:
- using System;
- using System.Collections.Generic;
- using System.ComponentModel;
- using System.Data;
- using System.Drawing;
- using System.Linq;
- using System.Text;
- using System.Windows.Forms;
- namespace WindowsFormsApplication1
- {
- public partial class Form1 : Form
- {
- public static Form1 p1 = null;
- public Form1()
- {
- InitializeComponent();
- p1 = this;
- }
- private void button1_Click(object sender, EventArgs e)
- {
- Form2 fr2 = new Form2();
- fr2.Show();
- }
- public void setvalue(string a)
- {
- textBox2.Text = a;
- }
- public string Text_Box
- {
- get { return textBox2.Text; }
- set { textBox2.Text = value; }
- }
- }
- }
Form2的代码:
- using System;
- using System.Collections.Generic;
- using System.ComponentModel;
- using System.Data;
- using System.Drawing;
- using System.Linq;
- using System.Text;
- using System.Windows.Forms;
- namespace WindowsFormsApplication1
- {
- public partial class Form2 : Form
- {
- public Form2()
- {
- InitializeComponent();
- }
- private void button1_Click(object sender, EventArgs e)
- {
- Form1.p1.Text_Box = "aaaa";
- }
- }
- }
二、在Form1中定一个public方法和一个按钮事件(打开Form2)
- //public方法用于修改TextBox的值
- public void SetTextBox(string strValue)
- {
- this.textBox1.Text = strValue;
- }
- //按钮事件
- private void button1_Click(object sender, System.EventArgs e)
- {
- Form2 f = new Form2();
- f.Tag = this; //把Form1的实例传给Form2实例f的Tag属性
- f.Show();
- }
Form2中的按钮事件
- private void button1_Click(object sender, System.EventArgs e)
- {
- Form1 f = (Form1)this.Tag;//获取Form1实例
- f.SetTextBox("去修改Form1中的TextBox的值");//调用Form1的public方法修改Form1中TextBox的值
- }
以上仅供参考,可能还有别的办法。
- 在一个窗体中设置另一个窗体的控件属性
- Winform中怎样在一个窗体中获得另一个窗体中的控件的值?
- C# 在一个窗体中调用另一个窗体的控件可能出现的问题
- 如何在一个窗体中调用另一个窗体的控件或方法
- 如何在一个窗体中调用另一个窗体的控件或方法
- C#在一个窗体中调用另一个窗体的方法
- 在一个窗体中调用另一个窗体的数据
- 在C#中使用Panel控件实现在一个窗体中嵌套另一个窗体
- Winform wpf在一个窗体的事件里,修改另一个窗体控件的值
- C# 窗体中一个类中调用另一个窗体的控件或方法
- C# 实现一个窗体调用另一个窗体的控件
- 一个窗体中Process启动另一个窗体,设置当前窗体为非顶层窗体
- 如何在一个窗体中嵌入另一个窗体。
- qt4:在一个窗体中打开另一个窗体
- 如何在一个窗体中嵌入另一个窗体
- WinForm中一个窗体调用另一个窗体的控件和事件的方法(附带源码)
- 一个窗体调另一个窗体控件
- c#中一个窗体调用另一个窗体的控件及方法(转贴)
- 什么是五险一金
- C#中的委托和事件(续)
- 如何计算我的“五险一金”
- 有关对文件的操作(System.IO)
- 实现和IE浏览器交互的几种方法的介绍
- 在一个窗体中设置另一个窗体的控件属性
- 两件事:李一男、CS游戏
- 什么是MAC地址
- 中华人民共和国劳动合同法
- 五类软件测试工具
- db2 v9 64位有个进程占用内存4.1G
- C#基础技巧--字符串处理函数
- 算法之动态顺序统计
- java实现的冒泡、选择、快速排序