关于C#,从另一窗体中读取文本框的内容
在主窗体(Form1)中,有文本框textBox1我添加了代码: public string getname()
{
return textBox1.Text;
}
在另外一个窗体的代码区中,定义了变量string name;,
添加语句为: Form1 f =new Form1();
name=f.getname();
请问这样哪里出错了呢? --------------------编程问答-------------------- 还有,错了,应该怎么做呢? 给指点指点。 --------------------编程问答-------------------- public string textboxname
{
get {return textBox1.Text;}
}
form2中通过
Form1 f获取属性值 --------------------编程问答-------------------- 不需要这么麻烦,直接用委托就能得到父窗体的空间的值
在Form2窗体中加以下代码
Form1 fr1 = (Form1)this.Owner;
string name = fr1.textbox1.text; --------------------编程问答-------------------- 看看我的博客
http://blog.csdn.net/chazikai24/archive/2010/09/01/5855254.aspx --------------------编程问答-------------------- 试了下, 怎么有错误呢
get { return textBox1.Text;}
编译器说错误在 “{”,应输入 “;”
这是怎么回事呢? --------------------编程问答--------------------
注意,上面public 后面没有括号的 --------------------编程问答-------------------- 你要在Form1的构造函数里对属性 进行赋值
public partial class Form1 : Form
{
private string textboxname;
public string Textboxname
{
get { return textboxname; }
set { textboxname = value; }
}
public Form1()
{
InitializeComponent();
this.Textboxname = textBox1.Text;
}
private void Form1_Load(object sender, EventArgs e)
{
}
这样你在Form1 f=new form1()的时候,它是属性才会有值 --------------------编程问答-------------------- 在FORM1定义一个静态变量 然后生成GET SET
将textBox1.Text传给这个变量
然后在另一个窗体直接用这个变量就可以了 --------------------编程问答-------------------- 如果一定要用静态的变量,这样可以简单点
public partial class Form1 : Form
{
public static string textboxname;
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
textboxname = textBox1.Text;
}
private void button1_Click(object sender, EventArgs e)
{
Form2 f = new Form2();
f.Show();
}
}
在form2中直接可以调用
string text = Form1.textboxname; --------------------编程问答-------------------- 可将Form1实例传入Form2中 --------------------编程问答-------------------- 几位说的我有试了,现在都没有出现错误了。
不过,我也不知怎的,就是没能获取到;
像用9楼的,
我在第二窗体的代码区中,
textBox2.Text=textboxname;
但运行后,文本框textBox2中内容是空的,
这是怎么回事呢? --------------------编程问答--------------------
用的肯定不会有问题,3楼的,委托传值,很方便 --------------------编程问答--------------------
出现异常,未将对象引用设置到对象的实例。
--------------------编程问答--------------------
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 WindowsFormsApplication5
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
public string name;
private void button1_Click(object sender, EventArgs e)
{
name = textBox1.Text;
Form2 fr2 = new Form2();
fr2.ShowDialog(this);
}
}
}
using System;//窗体2--------------------编程问答-------------------- 楼主再把你改过的代码贴下出来,看看哪里有问题 --------------------编程问答-------------------- textBox1属性改成PUBLIC
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace WindowsFormsApplication5
{
public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
Form1 fr1 = (Form1)this.Owner;
MessageBox.Show(fr1.name);
}
}
}
public string textboxname
{
get {return textBox1.Text;}
}
FORM2构造函数 public Form2(Form1 f1)
{
......
name = f1.textboxname;
} --------------------编程问答-------------------- textBox1属性改成PUBLIC
public string textboxname
{
get {return textBox1.Text;}
}
FORM2构造函数 public Form2(Form1 f1)
{
......
name = f1.textboxname;
} --------------------编程问答-------------------- textBox1属性改成PUBLIC
public string textboxname
{
get {return textBox1.Text;}
}
FORM2构造函数 public Form2(Form1 f1)
{
......
name = f1.textboxname;
} --------------------编程问答--------------------
+1
这个textbox1 访问权限应设为public --------------------编程问答-------------------- 搞定了,谢谢大家啊…… --------------------编程问答-------------------- 恭喜LZ,请对大家的服务打分!非常满意,请按A,满意请按B,不满意请按C! --------------------编程问答-------------------- 在Form1里加上
Form2.Owner=this;
Form2.Show();
然后再在Form2窗体中加以下代码
Form1 fr1 = (Form1)this.Owner;
string name = fr1.textbox1.text;
--------------------编程问答-------------------- 怎么结不了帖呢?
按结帖按钮后,只出来一个空白页面 --------------------编程问答-------------------- 其实窗体传值有很多种方式,你除了可以用属性传值,还可以用构造函数,静态变量等。
http://blog.csdn.net/deepwishly/archive/2010/01/18/5209590.aspx --------------------编程问答-------------------- 支持了... --------------------编程问答-------------------- --------------------编程问答--------------------
支持 --------------------编程问答-------------------- public string textboxname
{
get {return textBox1.Text;}
} --------------------编程问答-------------------- 谢谢 。。。
补充:.NET技术 , C#