将两种形式连接在一起
本文关键字:连接 在一起 两种 | 更新日期: 2023-09-27 18:25:45
我想知道是否可以在C#中将两个winform"链接"在一起。在某种程度上,我可以只调用变量,比如:ApplicationProperties.ApplicationPort.BaudRate
,而不必为我想调用的所有内容创建一个实例?类似于VB.net。如果有人能给我指明正确的方向,我将不胜感激。
我有两个表单(MainBox)和(ApplicationProperties)。我希望两种形式都可以互相访问。以类似于VB.NET.的方式
例如:
在表单一中,我有一个串行端口(ApplicationPort),我正在将值写入一个.xml文件。
public void SaveApplicationProperties()
{
try
{
//CreateNode(everything being referenced. Put text boxes, and drop down boxes here.
XmlTextWriter writer = new XmlTextWriter(@"C:'ForteSenderv2.0'Properties.xml", System.Text.Encoding.UTF8);
writer.WriteStartDocument(true);
//Making the code indeted by 2 characters.
writer.Formatting = Formatting.Indented;
writer.Indentation = 2;
//Making the start element "Table".
writer.WriteStartElement("Forte_Data_Gatherer_Application");
//Calling the rst of the .xml file to write.
CreateNode(ApplicationPort.PortName, ApplicationPort.BaudRate.ToString(), ApplicationPort.DataBits.ToString(), ApplicationPort.Parity.ToString(), ApplicationPort.StopBits.ToString(), ApplicationPort.Handshake.ToString(), writer);
writer.WriteEndElement();
writer.WriteEndDocument();
writer.Close();
MessageBox.Show(ApplicationPort.PortName);
MessageBox.Show(ApplicationPort.BaudRate.ToString());
}
catch (Exception ex)
{
MessageBox.Show("Writing to .xml file failure: " + ex.Message);
}
}
现在,我希望能够从中二调用该串行端口,而无需创建实例。我有一个实例,但我发现为我想在form2中使用的每个串行端口、文本框或工具创建一个实例很乏味。有什么办法我可以像在VB.NEt那样给他们打电话吗?
对您来说,最好的方法是使用ApplicationSettings。
您的另一个次佳选择是其他答案包含的实例类。
尝试让所有的应用程序表单传递参数会很快变得一团糟。
而不必为我想称之为的所有东西创建一个实例
如果它是一个实例方法,那么你必须创建一个表单实例。如果你认为你可以使你的方法静态,那么你可以按照你想要的方式调用它。例如
public partial class Form1 : Form
{
new Form2().InstanceMethod(); //Call with instance
Form2.StaticMethod(); // call without creating instane
}
public partial class Form2 : Form
{
public void InstanceMethod()
{}
public static void StaticMethod()
{}
}
您可以让您的表单从一个公共的基本表单类继承,在那里您可以放置您的公共属性。
不,不能像您所说的那样将两个表单类链接在一起,因为它们是实例,并且您希望使用静态方法来处理来自两个不同实例的值,但将它们视为一个实例。