在两个项目之间传递值
本文关键字:之间 项目 两个 | 更新日期: 2023-09-27 18:11:40
我有两个项目,在两个项目之间传递值有麻烦。像往常一样,我在项目之间传递了文件引用。
My project Details Is:
Project1 Project2
All forms and object Only 1 MDI Forms Containing ManuStrip
我想读MDI表格上显示的项目表格的数据示例如下:
//This is on Project2 MDI Forms
private void accountMasterToolStripMenuItem_Click(object sender, EventArgs e)
{
INVOICE1.Form24 f24 = new INVOICE1.Form24();
f24.PFrom.Text = label4.Text;
f24.PTo.Text = label5.Text;
f24.Namee.Text = textBox1.Text;
f24.ID.Text = label6.Text;
f24.ShowDialog();
}
我已经在project1表单上创建了相同的属性
public Label PFrom
{
get { return label14; }
set { label14 = value; }
}
public Label PTo
{
get { return label16; }
set { label16 = value; }
}
public Label Namee
{
get { return label2; }
set { label2 = value; }
}
public Label ID
{
get { return label3; }
set { label3 = value; }
}
从MDI传递给Project1的值没有显示在Project1的Form24上。没有错误。Form24显示没有值,这些值是从MDI表单传递过来的。
为什么project1的form24上没有显示值?
您可能忘记在Project2中向Project1添加一个项目引用。在解决方案资源管理器中,右键单击Project2并选择"添加引用",然后在"项目"下选择Project1。
另外,如果两个项目具有不同的名称空间,则需要将
using Project1; // replace "Project1" with the namespace of your Project1
在Project2源文件的顶部。
如果没有编译错误,那么问题不太可能与项目引用有关。也许在Form24构造函数或Load事件中有一些代码正在清除这些标签
作为一个旁注,而不是公开标签作为属性,只是公开他们的文本属性:
public string PFrom
{
get { return label14.Text; }
set { label14.Text = value; }
}
我也遇到过同样的问题,答案很简单:不可能。然而,你可以解决这个问题……使用数据库或共享解决方案,您将在两个项目之间建立通信。或者使用3个项目并创建将在1和2个项目中使用的通信驱动程序。它不会衡量你将如何做到这一点。
-
情况:数据库
-
情况:使用通信协议共享解决方案
-
也许创建DLL也会有帮助
我个人的解决方案是这样的:(在真实的网站和单独的背景项目上测试)
创建共享项目,使用VS模板(共享项目)。然后创建您的类,并在每个项目的项目参考部分中包含您的共享项目。例如项目A项目B项目SharedPr ->包含通信协议
Project A -> references-> Add Reference -> Shared Project.
项目B ->参考->添加参考->共享项目。
这个通信协议有点像你需要创建的驱动程序。
通过FILE很容易做到这一点。创建隐藏文件,项目A写入,项目B读取。在文件中存储json字符串或json数组,然后读取所有行并反序列化所有内容,例如使用Newtonsoft。Json NuGet包。