本文介绍了如何将值从子表单传递到父表单并返回?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个像这样的父表单.cs
I have a parent form first.cs like this
public partial class first : Form
{
public Graph graphi { get; }
Graph g = new Graph();
string s1 = null;
private void button1_Click(object sender, EventArgs e)
{
Stream myStream = null;
var parser = new Notation3Parser();
var graph = new Graph();
OpenFileDialog openFileDialog1 = new OpenFileDialog();
openFileDialog1.Filter = "RDF files (*.n3)|*.n3";
openFileDialog1.FilterIndex = 1;
openFileDialog1.RestoreDirectory = true;
openFileDialog1.Multiselect = false;
if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
try
{
if ((myStream = openFileDialog1.OpenFile()) != null)
{
using (myStream)
{
string s = openFileDialog1.FileName.ToString();
string w = Directory.GetCurrentDirectory().ToString();
string Fname = openFileDialog1.SafeFileName.ToString();
File.Copy(s, Path.Combine(w, Fname), true);
// Insert code to read the stream here.
Win32.AllocConsole();
s1 = Path.Combine(w, Fname);
showPath.Text = s1;
String parentvalueadress = this.s1;
showPath.Visible = true;
insertNodeButton.Visible = true;
delBut.Visible = true;
showNodes showNodes1 = new showNodes(s1);
g = showNodes1.returngraph();
Console.Read();
Win32.FreeConsole();
this.Show();
}
}
}
catch (Exception ex)
{
MessageBox.Show("Error: Could not read file from disk. Original error: " + ex.Message);
}
}
}
private void insertNodeButton_Click(object sender, EventArgs e)
{
addTriple a1 = new addTriple();
a1.BringToFront();
a1.ShowDialog();
g.SaveToFile(this.s1);
}
private void button3_Click(object sender, EventArgs e)
{
delete a1 = new delete();
a1.BringToFront();
a1.ShowDialog();
}
}
在 insertNodeButton_Click 方法中,我想将图形 g 的值传递给子窗体,它的代码如下:
in insertNodeButton_Click method I want to pass a value of graph g to the child form that it is code is like this:
public partial class addTriple : Form
{
Graph gr;
String childvalueadress;
private void addTriple_Load(object sender, EventArgs e)
{
var parser = new Notation3Parser();
var graph = new Graph();
gr = graph;
parser.Load(graph, childvalueadress);
}
private void subComboBox_SelectedIndexChanged(object sender, EventArgs e)
{
if (subComboBox.SelectedItem.ToString() == "URI")
{
subUriTB.Visible = true;
label1.Visible = true;
}
else
{
subUriTB.Visible = false;
label1.Visible = false;
}
}
private void objComboBox_SelectedIndexChanged(object sender, EventArgs e)
{
if ((objComboBox.SelectedItem.ToString() == "URI") || (objComboBox.SelectedItem.ToString() == "Literal"))
{
objUriTB.Visible = true;
label1.Visible = true;
}
else
{
objUriTB.Visible = false;
label1.Visible = false;
}
}
private void addTripleButton_Click(object sender, EventArgs e)
{
if (subComboBox.Text.ToString() == "select" || objComboBox.Text.ToString() == "select")
MessageBox.Show("please select node types");
else if ((subComboBox.SelectedItem.ToString() == "URI") && (subUriTB.Text.ToString() == ""))
MessageBox.Show("please fill text box for URI");
else if ((preUriTB.Text.ToString() == ""))
MessageBox.Show("please fill text box for URI");
else if ((objUriTB.Text.ToString() == "") && ((objComboBox.SelectedItem.ToString() == "URI") || (objComboBox.SelectedItem.ToString() == "Literal")))
MessageBox.Show("please fill text box for object name");
else if ((objComboBox.SelectedItem.ToString() == "URI") && (objUriTB.Text.ToString() == ""))
MessageBox.Show("please fill text box for URI");
try
{
if ((subComboBox.Text.ToString() == "URI") && (objComboBox.Text.ToString() == "URI"))
addUUU(subUriTB.Text.ToString(), preUriTB.Text.ToString(), objUriTB.Text.ToString(), gr);
else if ((subComboBox.Text.ToString() == "URI") && (objComboBox.Text.ToString() == "Literal"))
addUUL(subUriTB.Text.ToString(), preUriTB.Text.ToString(), objUriTB.Text.ToString(), gr);
else if ((subComboBox.Text.ToString() == "Blank") && (objComboBox.Text.ToString() == "Literal"))
addBUL(preUriTB.Text.ToString(), objUriTB.Text.ToString(), gr);
else if ((subComboBox.Text.ToString() == "URI") && (objComboBox.Text.ToString() == "Blank"))
addUUB(subUriTB.Text.ToString(), preUriTB.Text.ToString(), gr);
}
catch
{
MessageBox.Show("please correct the uri");
}
gr.SaveToFile("c:\\n.n3");
}
}
并在此子窗体中使用此值,然后将其传递给父窗体 first.cs
and work with this value in this child form and then pass it to the parent form first.cs
我该怎么做?
推荐答案
定义一个 子窗体的属性
// In Parent Form
addTriple a1 = new addTriple();
a1.G = graphicdata //assign graphic data here
a1.BringToFront();
a1.ShowDialog();
g.SaveToFile(this.s1);
// In Child Form
public Graph G
{
get { return gr; }
set { gr = value; }
}
现在您可以访问此任何内容并在显示表单之前为其分配数据
now you can have access to this anywere and assign data to it before showing the form
这篇关于如何将值从子表单传递到父表单并返回?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!