Как перебрать все элементы определенного класса, доступные в данном классе - C#
Формулировка задачи:
Есть у меня некий класс Car
Я создал несколько его экземпляров
Экземпляр класса Car в качестве одного из параметров принимает Control из формы
Я создал несколько экземпляров, всем навешал в качестве одного параметра по кнопке(разной).
Есть метод move
его задача передвигать контрол по форме
Как сделать так, чтоб при нажатии на кнопку метод передвигал именно тот контрол, к которому привязан экземпляр car
исходники прилагаются
namespace Classes { public partial class Form1 : Form { Car lambo; Car jigul; MoveMethod go; public Form1() { InitializeComponent(); lambo = new Car(button1, 100); go = new MoveMethod (moveCar); jigul = new Car(button2, 50); } private void button1_Click(object sender, EventArgs e) { //надо сделать какой-то метод, который будет двигать контрол именно тот, на который произошел клик //button1_Click выполняется не только для одной кнопки, а для всех //я думал перебрать все элементы, что находятся у меня в этом классе и потом определить, к какому привязан // контрол, на который кликнули, и чтоб выполнялось действие } private void Go(Car car, object sender) { Car.Move(car,go); } private void moveCar(object car, int speed) { while(lambo.Moving) { (car as Control).Location = new Point((car as Control).Location.X + (speed / 100), (car as Control).Location.Y); System.Threading.Thread.Sleep(20); } } } }
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Classes { public delegate void MoveMethod(object car, int speed); class Car { private bool _moving; public bool Moving { get { return _moving; } set { _moving = value; } } private int _speed; private object _car; public object CarObj { get { return _car; } set { _car = value; } } public int Speed { get { return _speed; } set { _speed = value; } } public void Move(MoveMethod go) { _moving = true; go(_car, _speed); } public static void Move(Car car, MoveMethod go) { car.Move(go); } public Car(object car, int speed) { _car = car; _speed = speed; _moving = false; } } }
Решение задачи: «Как перебрать все элементы определенного класса, доступные в данном классе»
textual
Листинг программы
Car lambo; Car jigul; Car AnotherCarName; // ... public Form1() { /* ... */ lambo = new Car(button1, 100); jigul = new Car(button2, 50); /* ... */ }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д