我希望我的问题很清楚
在Form1.cs中我有PictureBox名为:ico_ok
我想在我的新课程中使用这个PictureBox。 当我开始输入ico时...什么都没有出现。 在另一个类中使用此对象的方法是什么?
这里是代码:
public void button2_Click(object sender, EventArgs e)
{
lbl_check.Visible = true;
btn_continue.Visible = false;
txtbox_cusnumber.Enabled = false;
string userID = (txtbox_cusnumber.Text.ToString());
CheckOUinADexist checkou = new CheckOUinADexist(userID);
}
之后再看看新课程:
namespace ChekingOUinActiveDirectory
{
class CheckOUinADexist
{
public CheckOUinADexist(string userID)
{
//this place i would like to use ico_ok
}
}
}
感谢您的帮助。 Maayan
答案 0 :(得分:1)
最简单的方法可能是为该类提供依赖于PictureBox
:
public CheckOUinADexist(string userID, PictureBox pbox)
{
pbox.[your code]
}
然后在调用方法时提供它:
CheckOUinADexist checkou = new CheckOUinADexist(userID, ico_ok);
这是否是理想的方法,取决于您在该对象内使用PictureBox
做的内容,具有多少便携性该对象需要跨技术平台等。
通常,您不希望UI元素渗透到非UI逻辑中。如果CheckOUinADexist
是一个UI绑定类并且仅用于帮助UI,那么这不是一个问题。如果它是业务逻辑的一部分,那么您就不希望将该逻辑与UI技术结合起来。相反,您可能会传递PictureBox
所需的数据,而不是PictureBox
本身。
这一切都取决于你在这里尝试实现的整体架构,我们都不知道。
答案 1 :(得分:1)
基本上,您可以为目标类提供对共享数据的引用" - 在这种情况下的图片框。
class CheckOUinADexist
{
PictureBox _picBox
public CheckOUinADexist(string userID, PictureBox picBox)
{
//this place i would like to use ico_ok
_picBox = picBox;
_picBox.myAction();
}
}
是否要将Picturebox
实际存储为字段(而不是仅使用参数)取决于您是否需要在实例的整个生命周期内访问该字段,或者是否只需要用于对象构造。如果你不确定,你就更安全了(恕我直言)只是在一个字段中存储一个引用。进一步使用它会更容易。