0

我将自定义 Associate 对象传递到字段中,并且我想在按钮单击事件后向其添加用户名和密码。问题是我在按钮单击事件中失去了对象的范围。我该如何解决这个问题?这是我到目前为止的代码......

public partial class frmCredentials : Form
    {
        public frmCredentials(Associate _associate)
        {
            InitializeComponent();

        //Put in values for MES system and username
        this.label1.Text = "Please enter your " + _associate.mesType + " password";
        this.txtUsername.Text = _associate.userName;

        //Change form color for MES system
        if (_associate.mesType == "FactoryWorks")
        {
            this.BackColor = System.Drawing.Color.Aquamarine;
        }
        else
        {
            this.BackColor = System.Drawing.Color.Yellow;
        }

    }

    private void btnOk_Click(object sender, EventArgs e)
    {
        //Make sure associate has filled in fields
        if (this.txtUsername.Text == "" || this.txtPassword.Text == "")
        {
            MessageBox.Show("You must enter a Username and Password");
            return;
        }
        this.Visible = false;


        return ;
    }
}
4

1 回答 1

0

解决方案是为您的Associate对象创建一个实例字段。然后在构造函数中设置实例字段值。

public partial class frmCredentials : Form
{
   private Associate _associate;

    public frmCredentials(Associate _associate)
    {
        InitializeComponent();

        this._associate = _associate;

       //Put in values for MES system and username
       this.label1.Text = "Please enter your " + _associate.mesType + " password";
       this.txtUsername.Text = _associate.userName;

       //Change form color for MES system
       if (_associate.mesType == "FactoryWorks")
       {
          this.BackColor = System.Drawing.Color.Aquamarine;
       }
       else
       {
          this.BackColor = System.Drawing.Color.Yellow;
       }

  }

  private void btnOk_Click(object sender, EventArgs e)
  {
     // you can use _associate object in here since it's an instance field

     //Make sure associate has filled in fields
     if (this.txtUsername.Text == "" || this.txtPassword.Text == "")
     {
          MessageBox.Show("You must enter a Username and Password");
          return;
      }
      this.Visible = false;
      return ;
  }
 }
于 2013-06-22T02:26:43.297 回答