C # Передача значений из одной формы в другую открытую форму - PullRequest
0 голосов
/ 18 июля 2011

Я изучаю язык программирования C # и создаю дополнение к программе Payroll для SAP Business One. У меня есть две формы, и я хочу передать значение из PayrollFormulaBuilder.cs в EarnDeductSetup.cs.

PayrollFormulaBuilder используется пользователем для генерации формулы и сохраняется в строку. Пользователь нажимает кнопку калькулятора в форме EarnDeductSetup, чтобы открыть форму PayrollFormulaBuilder. Форма EarnDeductSetup все еще открыта, но в фоновом режиме. Я хочу, чтобы сгенерированная формула отображалась в моей форме EarnDeductSetup (у меня есть текстовое поле txt_formula_template.Text), как только пользователь нажимает кнопку «Применить» в форме PayrollFormulaBuilder. Я также хотел бы, чтобы эта форма PayrollFormulaBuilder закрывалась, как только нажата кнопка «Применить».

В настоящее время я не могу отобразить сгенерированную формулу в своей форме 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.Text в моей EarnDeductSetupForm, как только пользователь нажмет кнопку в форме PayrollFormulaBuilder?

Ответы [ 2 ]

0 голосов
/ 18 июля 2011

Вы можете взглянуть на http://social.msdn.microsoft.com/forums/en-US/winforms/thread/d925077a-d013-481b-8ce5-3d1af1cd924e/ и http://www.daniweb.com/software-development/vbnet/threads/43763

Кстати, вы можете погуглить, прежде чем задавать вопросы.

0 голосов
/ 18 июля 2011

Установите для кнопки в родительской форме значение Internal, затем используйте свойство parent или parentform в диалоговом окне для доступа к нему, приведя его к родительскому типу для типа (это должно открыть внутреннюю кнопку с intellisense). Вызовите ShowDialog с «this» в качестве параметра (без кавычек).

Подписаться на события на внутренней кнопке родительской формы, в дочернем диалоге. И делай свое дело в обработчике событий.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...