有兩個form,form1和form2。
form1裏面有一個form1_TextBox和一個form1_Button,form2裏面也有一個form2_TextBox和一個form2_Button;
點擊form1裏面的form1_Button打開form2,然後在form2裏面的文本框裏面輸入文本,點擊form2_Button關閉form2,同時把form2_TextBox裏面的文本顯示在form1_TextBox中;
注意:form1窗體的狀態為打開狀態
下面是我的解決方案,可是不行,麻煩各位大俠給我指點指點!
form1的代碼:
public string _designElements; public string DesignElements
{
get { return RD_ExpressionTxtRulExpression.Text= _designElements; }
set { _designElements = value; }
}form2的代碼:
private void RD_AlreadyBtnClose_Click(object sender, EventArgs e)
{
RuleDesignExpression rdExpres = new RuleDesignExpression();
rdExpres.Refresh();
rdExpres._designElements = RD_AlreadyTxt.Text;
this.Close();
//this.Dispose();
}
form1裏面有一個form1_TextBox和一個form1_Button,form2裏面也有一個form2_TextBox和一個form2_Button;
點擊form1裏面的form1_Button打開form2,然後在form2裏面的文本框裏面輸入文本,點擊form2_Button關閉form2,同時把form2_TextBox裏面的文本顯示在form1_TextBox中;
注意:form1窗體的狀態為打開狀態
下面是我的解決方案,可是不行,麻煩各位大俠給我指點指點!
form1的代碼:
public string _designElements; public string DesignElements
{
get { return RD_ExpressionTxtRulExpression.Text= _designElements; }
set { _designElements = value; }
}form2的代碼:
private void RD_AlreadyBtnClose_Click(object sender, EventArgs e)
{
RuleDesignExpression rdExpres = new RuleDesignExpression();
rdExpres.Refresh();
rdExpres._designElements = RD_AlreadyTxt.Text;
this.Close();
//this.Dispose();
}
解决方案 »
- 跪求 System.Windows.Forms.Timer 的一个问题
- c# 读取xml文件内容
- c# treeView节点的拖拉问题
- 求救!Windows下面的多媒体文件循环播放,怎么搞,以前没搞过这个.
- ************************初学者的问题,请帮忙我!*******************************
- 100分求教各位高手这个存储过程要怎样写!!?????????????不胜感激!!!!!!!!!!!!!!!!!!!!
- 代码添加的控件在postback后消失了。。。。我想把代码添加的控件在页面上永久显示。请教高手。。。
- 创建文件夹,并把文件上传到该文件夹,我的代码如下,现在的问题是新建的文件夹,不让上传文件,怎么办?
- 软件是如何获取网络上的内容的?
- 如何判断一个字符变量是回车符?
- 在读串口数据时ReadTimeout起什么作用,怎样判断是否超时,在超时的时候怎样处理?
- 新手求助
{
Form2 form2=new Form2();
form2.ShowDialog()
form1_TextBox.Text = form2_TextBox.Text;
}
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
//两个构造函数,一个有参数一个没参数,有参数的用来传递Form2中输入的文本
public Form1(string Text)
{
InitializeComponent();
//MessageBox.Show("修改"+ID);
this.form1_TextBox.Text = Text;
}
private void form1_Button_Click(object sender, EventArgs e)
{
Form2 f = new Form2();
f.show();
}
}Form2namespace Test
{
public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
}
}
private void form2_Button_Click(object sender, EventArgs e)
{
Form1 f = new Form(form2_TextBox.Text);
f.show();
this.close();
}
}
再创建一个子窗体form2,拥有控件:textBox2,button2;
(首先描述一下整个过程:当点击form1的button1时,打开form2窗口,然后在textBox2里面输入任意值,当点击button2时,将textBox2的值传给textBox1,即实现窗体间传值)
第一种方法:
在button1的单击事件中写入如下代码:
form2 f2 = new form2();
f2.ShowDialog(this);
在button2的单击事件中写入如下代码:
form1 f1 = (form1)this.owner;
f1.textBox1.text =this.textBox2.text;
运行即可实现传值。
第二种方法:
在button1的单击事件中写入如下代码:
form2 f2 = new form2(this);
f2.ShowDialog();
在窗体form2的窗体类中声明变量,并改写初始化构造函数如下:
form1 form1;
public form2(form1 f1)
{
InitializeComponent();
form1 = f1;
}
在button1的点击事件中写入如下代码:
form1.textBox1.text = this.textBox2.text;
运行即可实现传值。
注:textbox1的Modifiers(控件的可见性级别,即修饰符)应为:public ,internal,protected中之一,不能为private(私有)。
form2的代碼
//設置窗體只能被打開一次
public static ChoiceDesignElement openElementForm()
{
if (designElement == null)
{
designElement = new ChoiceDesignElement();
}
return designElement;
}
form1的代碼
private void RD_ExpressionBtn_Element_Click(object sender, EventArgs e)
{
ChoiceDesignElement element = ChoiceDesignElement.openElementForm();
//ChoiceDesignElement ele = new ChoiceDesignElement();
element.Show(); // RD_ExpressionTxtRulExpression.Text = element.RD_AlreadyTxt.Text;
}
我用了一個單利模式,控制form2只能打開一次
這是form2中關閉按鈕的代碼
private void RD_AlreadyBtnClose_Click(object sender, EventArgs e)
{
RuleDesignExpression rdExpres = new RuleDesignExpression();
//rdExpres.Refresh();
//rdExpres._designElements = RD_AlreadyTxt.Text;
this.Close();
rdExpres.Refresh();
rdExpres.RD_ExpressionTxtRulExpression.Text = this.RD_AlreadyTxt.Text;
//this.Dispose();
}可是還是不能實現傳值4樓的方式和3樓的方式我也試過了,可是還是不行,不知道是什麽原因呢?