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表单上?
将父窗体中的按钮设置为internal,然后在对话框中使用parent或parentform属性来访问它,方法是将其强制转换为父窗体的type(这应该会使用智能感知公开内部按钮)。用"this"作为参数调用ShowDialog
在子对话框中订阅父窗体内部按钮上的事件。并在事件处理程序中执行您的操作。