我想在两个表单(c#)之间传递值.我该怎么做?
我有两种形式:Form1和Form2.
Form1包含一个按钮.当我单击该按钮时,Form2应该打开,Form1应该处于非活动模式(即不可选).
Form2包含一个文本框和一个提交按钮.当我在Form2的文本框中键入任何消息并单击提交按钮时,Form2应该关闭,Form1应该使用提交的值突出显示.
我该怎么做?有人可以通过一个简单的例子帮助我做到这一点.
我有自定义网格控件的许多应用程序设置(在用户范围内).其中大多数是颜色设置.我有一个表单,用户可以自定义这些颜色,我想添加一个按钮,以恢复默认颜色设置.如何阅读默认设置?
例如:
CellBackgroundColor在Properties.Settings.CellBackgroundColor为Color.White使用IDE.CellBackgroundColor要Color.Black在我的计划.Properties.Settings.Default.Save().Restore Default Colors按钮.现在,Properties.Settings.Default.CellBackgroundColor回归Color.Black.我怎么回去Color.White?
我正在努力研究如何在表单之间传递值.我有四种形式,我想将由Login第四和最终形式检索到的信息传递给我.
这就是我到目前为止所拥有的.
在这个功能:
private void btnLogin_Click(object sender, EventArgs e)
Run Code Online (Sandbox Code Playgroud)
我已经反序列化了我想要的数据:
NewDataSet resultingMessage = (NewDataSet)serializer.Deserialize(rdr);
Run Code Online (Sandbox Code Playgroud)
然后,当我打电话给下一个表格时,我已经这样做了:
Form myFrm = new frmVoiceOver(resultingMessage);
myFrm.Show();
Run Code Online (Sandbox Code Playgroud)
然后,我的VoiceOver表单看起来像这样:
public frmVoiceOver(NewDataSet loginData)
{
InitializeComponent();
}
private void btnVoiceOverNo_Click(object sender, EventArgs e)
{
this.Close();
Form myFrm = new frmClipInformation();
myFrm.Show();
}
Run Code Online (Sandbox Code Playgroud)
当我调试时,我可以看到数据处于loginData第二种形式,但我似乎无法在btnVoiceOverNo_Click事件中访问它.我如何访问它以便将其传递给下一个表单?
在决定提出这个问题之前,我已经对这个问题做了一些研究。我只是找不到任何对我有帮助的东西。
我正在用 C# 为紧凑框架 2.0 编写一个应用程序。
我需要在 form1 上实例化一个数据对象并将该对象传递给 form2。处理 form2 中的数据对象,然后将该数据传递回 form1 以便保存。
我理解表单只是一个对象,我也理解对象是通过引用而不是通过值过去的。我也了解这两种类型之间的区别。由于某种原因我无法让它发挥作用。
实现这一目标的最佳且最简洁的代码方式是什么?
我想更新Form1from的标签Form2.所以这就是我所拥有的:
// Form1
public string Label1
{
get { return this.label1.Text; }
set { this.label1.Text = value; }
}
// Form2
private void button1_Click(object sender, EventArgs e)
{
Form1 frm1 = new Form1();
frm1.Label1 = this.textBox1.Text;
this.Close();
}
Run Code Online (Sandbox Code Playgroud)
所以上面的代码不起作用.但是,当我添加以下内容时:
frm1.Show();
Run Code Online (Sandbox Code Playgroud)
后
this.Close();
Run Code Online (Sandbox Code Playgroud)
在Form2代码中,Form1显然是再次打开(两个窗口).但是我希望它在同一个窗口中更新,所以我认为this.Close()是不必要的.
有人有主意吗?
以下是我的代码
private void btnCptKb5_Click(object sender, EventArgs e)
{
Form1 form1 = new Form1();
textbox1.text = form1.textbox1.text;
}
Run Code Online (Sandbox Code Playgroud)
为什么我不能复制form1文本框的值?