Как перебрать все элементы определенного класса, доступные в данном классе - 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);
/* ... */
}