Стоит задача оптимизации кода C#

319
09 декабря 2016, 08:51

Столкнулся с проблемой в Windows Form.
Пример: Создано две кнопки Btn1, Btn2 и textBox1.

Нужно чтобы Btn1 и Btn2 можно было подставлять в одно и тоже место кода в виде переменной, для изменения их свойств.

Пример кода который нужно сделать рабочим

namespace TestObject
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        //Метод Для изменения свойств объекта через переменную BtnObj
        private void Btn()
        {
            //Изменение текста
            textBox1.Text = BtnObj.Text;
            //Изменение Локации
            BtnObj.Location = new System.Drawing.Point(100, 100);
        }
        private void Btn1_Click(object sender, EventArgs e)
        {
            //Переменной BtnObj передается объект Btn1 и все его свойства
            BtnObj = Btn1;
            //Запуск Метода Btn()
            Btn();
        }
        private void Btn2_Click(object sender, EventArgs e)
        {
            BtnObj = Btn2;
            Btn();
        }
    }
}

Какой тип у переменной BtnObj или как можно это реализовать?

Answer 1

Тип - Button, такой же, как у Btn1 и Btn2.

Answer 2

Видимо, проблема в том, что у вас свойство BtnObj нигде не объявлено. Возможно, такой вариант вам поможет:

namespace TestObject
{
    public partial class Form1 : Form
    {
        public System.Windows.Forms.Button ButtonObj { get; set; }
        public Form1()
        {
            InitializeComponent();
        }
        //Метод Для изменения свойств объекта через переменную BtnObj
        private void Btn()
        {
            //Изменение текста
            textBox1.Text = ButtonObj.Text;
            //Изменение Локации
            ButtonObj.Location = new System.Drawing.Point(100, 100);
        }
        private void Btn1_Click(object sender, EventArgs e)
        {
            //Переменной BtnObj передаётся объект Btn1 и все его свойства
            ButtonObj = Btn1;
            //Запуск Метода Btn()
            Btn();
        }
        private void Btn2_Click(object sender, EventArgs e)
        {
            ButtonObj = Btn2;
            Btn();
        }
    }
}
Answer 3

Вы не создали по видимому BtnObj. А тип у неё Button

Button Obj;
Obj = button1;
Obj = button2;

Можно поместить и первую и вторую кнопку в Obj, по выбору

READ ALSO
Игнорирование child'ов при наведении на panel WinForms

Игнорирование child'ов при наведении на panel WinForms

Вот у нас есть panel, и на ней всякие другие элементы, например labelИ в panel, есть событие MouseHover (оно срабатывает, когда мышь наведена на объект),...

341
C#, как ввести текст на сайте? [закрыто]

C#, как ввести текст на сайте? [закрыто]

Допустим, есть сайт wwwyoutube

298
LinqTOSQL. Работа с функцией SubmitChanges() или как не записать то, что не нужно

LinqTOSQL. Работа с функцией SubmitChanges() или как не записать то, что не нужно

Действие происходит в C# WPF паттерн MVVMДля запросов к БД использую LinqToSQL и ее сущности

262
C# xNet Post Request MultipartContent

C# xNet Post Request MultipartContent

Как отправить пустой параметр?Студия выдаёт исключение

400