繁体   English   中英

使用另一个类 c# 中的 PictureBox

[英]use PictureBox from another class c#

我希望我的问题会很清楚

在 Form1.cs 中,我有一个名为: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
              }

 }

}

感谢您的帮助。 玛雅人

最简单的方法可能是为该类提供对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本身。

这在很大程度上取决于您在这里尝试实现的整体架构,我们不知道。

基本上你会给目标类一个对“共享数据”的引用——在这种情况下是图片框。

class CheckOUinADexist
{
    PictureBox _picBox
    public CheckOUinADexist(string userID, PictureBox picBox)
    {
        //this place i would like to use ico_ok
        _picBox = picBox;
        _picBox.myAction();
    }
}

是否要将Picturebox实际存储为字段(而不是仅使用参数)取决于您是否需要在实例的整个生命周期中访问该字段,或者是否仅用于对象构造。 如果你不确定,你更安全(恕我直言)只是在一个字段中存储一个引用。 使进一步使用它变得更加容易。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM