visual studio 2010 - c#将值从一个窗体传递到另一个打开的窗体

本文关键字:窗体 一个 另一个 2010 studio visual | 更新日期: 2023-09-27 18:02:28

我正在学习c#编程语言,正在为SAP Business One制作一个Payroll程序插件。我有两个表单,我想从payrollformulbuilder .cs传递一个值到EarnDeductSetup.cs。

PayrollFormulaBuilder被用户用来生成公式,并保存为字符串。用户单击EarnDeductSetup表单上的计算器按钮,以打开payrollformulbuilder表单。EarnDeductSetup表单仍然是打开的,但在后台。我希望生成的公式显示在我的EarnDeductSetup表单(我有一个文本框,txt_formula_template.Text)上,只要用户单击payrollformulbuilder表单上的"应用"按钮。我还希望这个payrollformulbuilder表单在按下apply按钮后立即关闭。

现在,我无法在EarnDeductSetup表单上显示生成的公式

我的代码:(EarnDeductSetupForm)

namespace EIM_Payroll_Application
{
    public partial class EarnDeductSetupForm : Form
    {
        private SAPbobsCOM.Company company;
        public string SAPCodePD { get; set; }
        public EarnDeductSetupForm(SAPbobsCOM.Company co)
        {
            InitializeComponent();
            this.company = co;
        }
...
private void btn_calculator_Click(object sender, EventArgs e)
        {
            PayrollFormulaBuilder PC = new PayrollFormulaBuilder();
            PC.ShowDialog();
        }

    if (rb_calculated_amt.Checked == true)
    {
        txt_formula_template.Text = SAPUtility._formulaVariable;
        formulaTemplate = txt_formula_template.Text;
    }

SAPUtility.cs

namespace Payroll.Util.Helpers
{
    public static class SAPUtility
    {
        public static string _formulaVariable = String.Empty;
        public static string variable
        {
            get { return _formulaVariable; }
            set { _formulaVariable = value; }
        }
...

PayrollFormulaBuilder.cs

private void btnApply_Click(object sender, EventArgs e)
{
    SAPUtility._formulaVariable = formula_display.Text;
    this.Close();
    EarnDeductSetupForm.ActiveForm.ShowDialog();
}

我的问题是,我如何得到这个公式显示在我的txt_formula_template。文本文本框在我的EarnDeductSetupForm上,只要用户按下应用在payrollformulbuilder表单上?

visual studio 2010 - c#将值从一个窗体传递到另一个打开的窗体

将父窗体中的按钮设置为internal,然后在对话框中使用parent或parentform属性来访问它,方法是将其强制转换为父窗体的type(这应该会使用智能感知公开内部按钮)。用"this"作为参数调用ShowDialog

在子对话框中订阅父窗体内部按钮上的事件。并在事件处理程序中执行您的操作。