使用另一个类c#中的PictureBox

时间:2015-09-01 18:44:02

标签: c# class

我希望我的问题很清楚

在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

2 个答案:

答案 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实际存储为字段(而不是仅使用参数)取决于您是否需要在实例的整个生命周期内访问该字段,或者是否只需要用于对象构造。如果你不确定,你就更安全了(恕我直言)只是在一个字段中存储一个引用。进一步使用它会更容易。