我提供了多个表格,并提供了购买按钮。我所拥有的表格是LawnA.cs和Lawnb.cs,我想对这两种形式使用单一的Buy.cs表格。我的意思是我想知道什么称为Buy.cs。
表格LawnA.cs
buy.lotAtobuy = this;
buy.ShowDialog();
表格LawnB.cs
buy.lotBtobuy = this;
buy.ShowDialog();
表格Buy.cs
public LawnA lotAtobuy;
public LawnB lotBtobuy;
((LawnA)lotAtobuy).textBox1.Text;
((LawnB)lotBtobuy).textBox1.Text;
在类Buy.cs中,我想执行:
((LawnA)lotAtobuy).textBox1.Text;
如果LawnA.cs调用Buy.cs而LawnB.cs调用Buy.cs我想执行此代码:
((LawnB)lotBtobuy).textBox1.Text;
答案 0 :(得分:1)
您需要为每个类定义单独的对象,而不是将变量定义为对象,并在分配文本之前检查对象的类型。这意味着Buy.cs
中该变量的声明将是:
public object lotToBuyInstance;
这样你就可以获得对象的类型并在使用前进行比较,就像thi:
if (lotToBuyInstance.GetType() == typeof(LawnA))
{
((LawnA)lotAtobuy).textBox1.Text;
}
else if (lotToBuyInstance.GetType() == typeof(LawnB))
{
((LawnB)lotAtobuy).textBox1.Text;
}
// and so on
考虑一下你想要创建另一个类(让它成为LawnC
)然后你不需要创建那个类型的对象并按照它进行更改,只需在{{1}中添加另一个条件}梯子让他们工作
答案 1 :(得分:0)
在接收表单的构造函数中尝试:
using System.Diagnostics;
public FormThatWasCalled
{
string caller = new StackTrace().GetFrame(1).GetMethod().DeclaringType.Name;
InitializeComponent();
}