Я хотел бы удалить значение из TextBox «txtName», используя отдельный класс «Delete» с методом .resetText (). у меня нет доступа в этом отдельном классе к моему TextBox. Как я могу решить эту проблему?

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }

    public void butDelete_Click(object sender, EventArgs e)
    {
        Delete delete = new Delete();
    }
}


class Delete
{
    public Delete()
    {
        txtName.ResetText();
    }
}

Извините за мой плохой английский...

2
Martin Tollkühn 5 Июл 2021 в 14:58

3 ответа

Лучший ответ

Передайте объект текстового поля в качестве параметра.

class Delete
{
    public Delete(TextBox txtName)
    {
        txtName.ResetText();
    }
}
1
Amit Verma 5 Июл 2021 в 12:14

Отправьте текстовое поле cotrol с параметром вашего метода удаления:


public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }

    public void butDelete_Click(object sender, EventArgs e)
    {
        Delete delete = new Delete();
        delete.Delete(txtName);
    }
}


class Delete
{
    public Delete(Control control)
    {
         var txtBox = control as TextBox;
         if (txtBox == null)
            return;
         txtBox.ResetText();
    }
}

0
Mansur Kurtov 5 Июл 2021 в 12:19

РЕШИТЬ

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }

    public void butDelete_Click(object sender, EventArgs e)
    {
        Delete delete = new Delete(txtName);
    }
}


class Delete
{
    public Delete(TextBox txtName)
    {
        txtName.ResetText();
    }
}
0
Martin Tollkühn 5 Июл 2021 в 12:51