Как перебрать все элементы определенного класса, доступные в данном классе - 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);
- /* ... */
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д