从一个字符串到另一个c#
本文关键字:字符串 另一个 一个 | 更新日期: 2023-09-27 18:00:48
我已经研究了一段时间,但似乎无法获得它。我必须从一个表单到另一个表单获取字符串,但它不起作用,我尝试使用get,但它只是抛出"get"在上下文中不存在。这是我的密码。这是在主窗体上:
public string SavePoint()
{
string settings = "";
string archive = "";
if (rb_Backup.Checked)
{
settings = "backup";
}
else if (rb_Restore.Checked)
{
settings = "restore";
}
else if (rb_Sync.Checked)
{
settings = "sync";
}
if (cb_Archive.Checked)
{
archive = "true";
}
else
{
archive = "false";
}
string savePoint = txt_From.Text + "'r'n" + txt_To.Text + "'r'n" + settings + "'r'n" + archive;
return savePoint;
}
这是在试图访问数据的表单上:
private void btn_Save_Click(object sender, EventArgs e)
{
frm_Main mainForm = new frm_Main();
string saveData = mainForm.SavePoint();
string savePath = AppDomain.CurrentDomain.BaseDirectory + "''Profiles";
if (!Directory.Exists(savePath))
{
Directory.CreateDirectory(savePath);
}
StreamWriter saveFile = new StreamWriter(savePath + "''" + txt_Save.Text + ".txt");
saveFile.WriteLine(saveData);
saveFile.Close();
this.Close();
}
我正在学习,这也是我制作这个软件的原因之一。
致以最诚挚的问候,
Scobbo
而不是等到btn_Save_Click
方法尝试从父窗体获取信息;让父窗体在首次创建子窗体时传递信息。
只需在子窗体上创建这样一个简单的属性:
public string SavePath {get;set;}
然后在第一次创建时设置主窗体:
SaveDialog child = new SaveDialog();
child.SavePath = SavePoint();
child.ShowDialog();
您可以在第二个表单上设置所有者,然后从主表单中显示它。然后您可以从第二个窗体访问主表单。
示例是-打开第二个表单的主表单按钮:
private void button1_Click(object sender, EventArgs e)
{
Form2 frm = new Form2();
frm.Owner = this;
frm.ShowDialog();
}
然后我们有第二个表单-我们想从主表单中提取数据:
private void button1_Click(object sender, EventArgs e)
{
//Get our owner form i.e: Form1.cs
Form1 frm = (Form1)this.Owner; // Here we cast the owner form as Form1
MessageBox.Show(frm.teststr()); // You can access the functions/procedure from the main form here
}
您不想继续创建主窗体的新实例,因为新实例意味着在当前主窗体上完成的所有数据/处理都设置为默认值。所以你想把当前的Main Form对象传递给Second Form。这就是我们在这里所做的。
要获得点,应该使用属性而不是方法。这应该看起来像
public string SavePoint
{
get
{
string settings = "";
string archive = "";
if (rb_Backup.Checked)
{
settings = "backup";
}
else if (rb_Restore.Checked)
{
settings = "restore";
}
else if (rb_Sync.Checked)
{
settings = "sync";
}
if (cb_Archive.Checked)
{
archive = "true";
}
else
{
archive = "false";
}
string savePoint = txt_From.Text + "'r'n" + txt_To.Text + "'r'n" + settings + "'r'n" + archive;
return savePoint;
}
}