Как в классе ссылаться на элемент управления?

204
20 июня 2017, 22:44

Доброй ночи. Создаю свою библиотеку методов и не понимаю, как в параметр функции добавить ссылку на элемент управления? Сами элементы управления:

Мой первый метод с ошибкой:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace ПАК_ИП_ОЭБ
{
    class InterfaceLibClass1
    {
        static public bool isDragging = true;
        static public void Dragging(object sender, MouseEventArgs e, string occasion, bool isDragging = true)
        {
            int oldX, oldY;
            if (occasion == "MouseDown"){                    
                oldX = e.X;
                oldY = e.Y;
            }
            else if (occasion == "MouseMove") {
                oldX = e.X;
                oldY = e.Y;
                sender.Top = sender.Top + (e.Y - oldY);
                sender.Left = sender.Left + (e.X - oldX);
            }
            else if (occasion == "MouseUp") {
                isDragging = false;
            }    
        }
    }
}
Answer 1

sender - это object. А у object нет свойств. Вам нужно тип object отправителя привести к типу Control. Например:

if(sender is Control)
{
   var yourControl = sender as Control;
}

Для C# 7.0. можно так (комментарий @VladD):

if (sender is Control yourControl) { ... }
READ ALSO
как сохранить кадры на диск полученные помощью AVIReader Class - AForge.NET Framework

как сохранить кадры на диск полученные помощью AVIReader Class - AForge.NET Framework

подскажите пожалуйста как можно сохранить на диск кадры полученные с помощью AForgeNET Framework

253
Поиск методов в списке C#

Поиск методов в списке C#

Есть список List<MethodInfo> с записанными в него методамиНадо выполнить поиск по списку(по свойству MethodInfo

221
TextBlock не отзывается на INotifyPropertyChanged

TextBlock не отзывается на INotifyPropertyChanged

Поиск в интернетах не дал результатов, у многих есть такая же проблемаИспользовать вместо TextBlock TextBox, не могу, нужны Run'ы

210
Трудности с DockPanel - не работает выравнивание

Трудности с DockPanel - не работает выравнивание

- вот в таком случае получается, что кнопка находится по центру а не справа

226