从父表单获取字符串的值

时间:2014-03-30 06:31:37

标签: c#

我正在尝试将我的产品版本(自定义个人版本号)显示为子表单。

主要表格

namespace My_Program
{
    public partial class mnView : Form
    {
        // Set custom version number
        public string POCVersion = "0.1.0 Beta";

        public mnView()
        {
            InitializeComponent();
            // Fills in the version number to a label on the status strip
            lblPOCVersion.Text = String.Format("Pizza Online Console Version: {0}", POCVersion);
        }
    }
}

关于表格

namespace My_Program
{
    public partial class mnAbout : Form
    {
        public mnAbout()
        {
            InitializeComponent();
            mnView mainParent = (mnView)this.Owner;
            lblAboutCurrentVersion.Text = String.Format("Version: {0}", mainParent.POCVersion);
        }
    }
}

我的代码不太有用。我知道这可能都错了。一点帮助都会很好。感谢

2 个答案:

答案 0 :(得分:1)

您可以将字符串变量公开为属性:

public string POCVersion { get{return this.POCVersion;} }

并使用父表单实例从您的子表单中调用它。

你可以将它声明为一个静态变量:

public static string POCVersion = "0.1.0 Beta";

这适用于您现有的表单。 希望这会有所帮助...

答案 1 :(得分:0)

您可以将版本公共静态只读,然后轻松地在其他类中使用它:

public static readonly string POCVersion = "0.1.0 Beta";

然后你就可以使用它:

lblAboutCurrentVersion.Text = String.Format("Version: {0}", mnView.POCVersion);

另一种方法是通过项目的Properties文件夹中的AssemblyInfo类设置它,然后您可以在代码中访问它,如:

Assembly assembly = Assembly.GetExecutingAssembly();
FileVersionInfo fvi = FileVersionInfo.GetVersionInfo(assembly.Location);
string version = fvi.FileVersion;

这是更标准的方法,因为其他人可以通过你的exe或dll文件找到版本,但你只有标准格式x.x.x.x的版本,并且不能使用像“Beta”这样的表达。