Чтобы найти решение, я создал упрощенный тестовый пример.
Код: Выделить всё
namespace UpdateFormData
{
public partial class ParentForm : Form
{
public ParentForm()
{
InitializeComponent();
}
// Field manipulation
public void UpdateField1()
{
// do something meaningful
tbField1.Text = "Field 1 - " + DateTime.Now.ToString();
}
public void UpdateField2()
{
// do something meaningful
tbField2.Text = "Field 2 - " + DateTime.Now.ToString();
}
// Message
public void ShowMsg(int PassNo)
{
string MsgTitle = PassNo == 1 ? "First" : "Second";
string Fld1Txt = tbField1.Text;
string Fld2Txt = tbField2.Text;
MessageBox.Show($"Field 1: {Fld1Txt}\nField 2: {Fld2Txt}", $"{MsgTitle} Message");
}
// Test Button
private void btnTest_Click(object sender, EventArgs e)
{
int PassNo = 1;
string Fld1Txt = tbField1.Text;
string Fld2Txt = tbField2.Text;
ShowMsg(PassNo);
UpdateField1();
UpdateField2();
PassNo++;
ShowMsg(PassNo);
}
private void btnQuit_Click(object sender, EventArgs e)
{
tbField1.Text = "Field 1";
tbField2.Text = "Field 2";
this.Close();
}
}
}
Код: Выделить всё
namespace UpdateFormData
{
public partial class ParentForm : Form
{
public ParentForm()
{
InitializeComponent();
}
// Test Button
private void btnTest_Click(object sender, EventArgs e)
{
int PassNo = 1;
string Fld1Txt = tbField1.Text;
string Fld2Txt = tbField2.Text;
Utilities.ShowMsg(PassNo);
Utilities.UpdateField1();
Utilities.UpdateField2();
PassNo++;
Utilities.ShowMsg(PassNo);
}
private void btnQuit_Click(object sender, EventArgs e)
{
tbField1.Text = "Field 1";
tbField2.Text = "Field 2";
this.Close();
}
}
}
namespace UpdateFormData
{
internal static class Utilities
{
// Field manipulation
public static void UpdateField1()
{
// do something meaningful
ParentForm.tbField1.Text = "Field 1 - " + DateTime.Now.ToString();
}
public static void UpdateField2()
{
// do something meaningful
ParentForm.tbField2.Text = "Field 2 - " + DateTime.Now.ToString();
}
// Message
public static void ShowMsg(int PassNo)
{
string MsgTitle = PassNo == 1 ? "First" : "Second";
string Fld1Txt = ParentForm.tbField1.Text;
string Fld2Txt = ParentForm.tbField2.Text;
MessageBox.Show($"Field 1: {Fld1Txt}\nField 2: {Fld2Txt}", $"{MsgTitle} Message");
}
// Test Button
private static void btnTest_Click(object sender, EventArgs e)
{
int PassNo = 1;
string Fld1Txt = ParentForm.tbField1.Text;
string Fld2Txt = ParentForm.tbField2.Text;
ShowMsg(PassNo);
UpdateField1();
UpdateField2();
PassNo++;
ShowMsg(PassNo);
}
}
}
Код: Выделить всё
Error(active) CS0122 'ParentForm.tbField1' is inaccessible due to its protection level UpdateFormData D:\UpdateFormData\Utilities.cs 11
Error(active) CS0122 'ParentForm.tbField2' is inaccessible due to its protection level UpdateFormData D:\UpdateFormData\Utilities.cs 16
Error(active) CS0122 'ParentForm.tbField1' is inaccessible due to its protection level UpdateFormData D:\UpdateFormData\Utilities.cs 23
Error(active) CS0122 'ParentForm.tbField2' is inaccessible due to its protection level UpdateFormData D:\UpdateFormData\Utilities.cs 24
Error(active) CS0122 'ParentForm.tbField1' is inaccessible due to its protection level UpdateFormData D:\UpdateFormData\Utilities.cs 31
Error(active) CS0122 'ParentForm.tbField2' is inaccessible due to its protection level UpdateFormData D:\UpdateFormData\Utilities.cs 32
Подробнее здесь: https://stackoverflow.com/questions/788 ... pplication
Мобильная версия