建了两个Form: Form1 和 Form2,然后在这两个Form中各建了一个comoBox并分别命名为:comoBox_Form1 和 comoBox_Form2,然后我又在Form1里边创建了一个按钮button1.最后我给comoBox_Form1设定了1、2、3、4、5五个数可供选择,并且在属性里边设定Text为3。 我的目的是当我改变了comoBox_Form1的数值之后,点击button1,然后显示Form2并且给Form2里的comoBox_Form2赋予comoBox_Form1的数值。我试着这么编了一下,但是只能把提前设定给comoBox_Form1的值(在属性里边设定的)赋给comoBox_Form2,无论我怎么改变comoBox_Form1的值,都是只能得到提前设定的值。而我想要的是当我改变comoBox_Form1的值后,comoBox_Form2也跟着变。 以下是我的代码,各位热心人请帮忙更正一下啊! Form1的代码: namespace Test
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
} public string str
{
get { return comboBox_Form1.Text; }
set { comboBox_Form1.Text = value; }
} private void button1_Click(object sender, EventArgs e)
{
Form2 form = new Form2();
form.Show();
}
}
} Form2的代码: namespace Test
{
public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
} Form1 Practice_design; private void Form2_Load(object sender, EventArgs e)
{
Practice_design = new Form1();
comboBox_Form2.Text = Convert.ToString (Practice_design.str);
}
}
}
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
} public string str
{
get { return comboBox_Form1.Text; }
set { comboBox_Form1.Text = value; }
} private void button1_Click(object sender, EventArgs e)
{
Form2 form = new Form2();
form.Show();
}
}
} Form2的代码: namespace Test
{
public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
} Form1 Practice_design; private void Form2_Load(object sender, EventArgs e)
{
Practice_design = new Form1();
comboBox_Form2.Text = Convert.ToString (Practice_design.str);
}
}
}
解决方案 »
- 怎么才能让webservice返回json的时候去掉那个讨厌的d
- 说说什么叫线程,什么叫进程
- WebBrowser控件问题
- C# 指针问题
- assembly如何读取不是debug下的dll文件
- 如何将C#写的WCF客户端程序封装成dll给C++调用?
- 问一个JAVASCRIPT问题,document和document.All的问题
- 用C#将数据导入Excel,怎样操作它的对象合并Excel的单元格?谢谢!
- 数据库操作奇妙错误。
- 有關treeview程式***********真的小問題
- C#中att = (OpenPOP.MIMEParser.Attachment)msg.Attachments[1]; 中最后面中括号里的1是什么意思?
- 急!!!
public static string AAA;
我的目的是在Form1中定义全局变量,然后在Form1里改变全局变量的值,然后将改变了的值赋到Form2里边。
{
Form2 form = new Form2();
//应该在这儿给Form2的comboBox_Form2赋值
comboBox_Form2.Text=comboBox_Form1.Text ;
form.Show();
}
因为你这里重新实例化了Form1,所以它肯定是默认值的
你可以选择使用参数的形式传值,也可以用静态变量 public static string strMyValue = "";
private void button1_Click(object sender, EventArgs e)
{
strMyValue = comboBox_Form1.Text
Form2 form = new Form2();
form.Show();
} private void Form2_Load(object sender, EventArgs e)
{
comboBox_Form2.Text = Form1.MyValue;
}
2、在Form2中同样定义一个变量,并增加一个带参数的构造函数,参数就是你定义的变量。
3、在Form1中new Form2时,使用参数的构造方法。如:Form2 f2 = new Form2(****);
4、在Form2的load事件中通过之前定义参数,先给 comboBox_Form2 赋值。
4楼的方法比较常用,你用这个就行;
Form2 newfm = new Form2();
newfm.fa = this;
newfm.ShowDialog();
2,在form2中,用这个fa可以取得form1的控件,读取或设置form1控件的值
System.Windows.Forms.Control[] ctrltxt = fa.Controls.Find("textBox1",true);
System.Windows.Forms.TextBox txt = (System.Windows.Forms.TextBox)ctrltxt[0];
this.textBox1.Text = txt.Text;
或者在show之前给控件赋值也很方便。