我正在学习C#编程语言,正在为SAP Business One制作一个Payroll程序插件。我有两种形式,我想将PayrollFormulaBuilder.cs中的值传递给EarnDeductSetup.cs。
用户使用PayrollFormulaBuilder生成公式并保存为字符串。用户单击EarnDeductSetup表单上的计算器按钮以打开PayrollFormulaBuilder表单。 EarnDeductSetup表单仍处于打开状态,但在后台。我希望只要用户点击PayrollFormulaBuilder表单上的“应用”按钮,生成的公式就会显示在我的EarnDeductSetup表单上(我有一个文本框,txt_formula_template.Text)。我也希望这个PayrollFormulaBuilder表单在按下应用按钮后立即关闭。
目前,我无法在我的EarnDeductSetup表格中显示生成的公式
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;
}
namespace Payroll.Util.Helpers
{
public static class SAPUtility
{
public static string _formulaVariable = String.Empty;
public static string variable
{
get { return _formulaVariable; }
set { _formulaVariable = value; }
}
...
private void btnApply_Click(object sender, EventArgs e)
{
SAPUtility._formulaVariable = formula_display.Text;
this.Close();
EarnDeductSetupForm.ActiveForm.ShowDialog();
}
我的问题是,如果用户在PayrollFormulaBuilder表单上按下应用,如何在我的EarnDeductSetupForm上的txt_formula_template.Text文本框中显示此公式?
答案 0 :(得分:0)
将父窗体中的按钮设置为internal,然后使用对话框中的parent或parentform属性来访问它,方法是将其转换为类型的父窗口(这应该使用intellisense公开内部按钮)。使用“this”作为参数调用ShowDialog(无引号)。
在子对话框中订阅父表单内部按钮上的事件。并在事件处理程序中执行您的操作。
答案 1 :(得分:0)