我不确定究竟要问什么。当我点击Car
上的加速按钮时,我创建了一个名为Form1
的类,我希望它加速5个增量。我需要使用Car类中的Accelerate方法来执行此操作。我以为我正确地调用它但没有任何效果。我需要简单的答案,因为我是初学者。
namespace Car_Class
{
class Car
{
public string _year;
public string _make;
public double _speed;
public Car(string year, string make, double speed)
{
_year = year;
_make = make;
_speed = 0;
}
public string Year
{
get { return _year; }
set { }
}
public string Make
{
get { return _make; }
set { }
}
public double Speed
{
get { return _speed; }
set { }
}
public double Accelerate()
{
return _speed += 5;
}
public double Brake()
{
return _speed -= 5;
}
}
}
然后按钮......
namespace Car_Class
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void accButton_Click(object sender, EventArgs e)
{
string _year = "";
string _make = "";
int _speed = 0;
Car acc = new Car(_year, _make, _speed);
acc.Accelerate();
currentspeedListBox.Text = ???????
}
}
}
答案 0 :(得分:2)
你需要设置currentspeedListBox.Text = acc.Speed.ToString()
你是否意识到你不会看到增加的速度,但你只会看到5?当你点击方框(从0开始)然后在加速时将它增加5,你正在创建一辆新车。一切都完成后,汽车就会消失,如果再次按下按钮,过程就会重新开始。 (以0的速度创建一辆新车,然后将其增加到5)
如果你想继续看到文本框中的增加,你需要将汽车作为私有变量放在Form1中,或者你需要采取你生成的速度(5)并将其作为私有变量存储在方法
编辑:
private Car _car = new Car("","",0)
private void accButton_Click(object sender, EventArgs e)
{
_car.Accelerate();
currentspeedListBox.Items.Add(car.Speed.ToString());
}
我认为文本框虽然说不然。 ListBox是许多项的容器,因此它有一个Items属性,其中包含所有内容。 listBox的Text属性指的是当前在列表框中选择的那个。由于列表框中没有任何内容,因此不会选择(或显示)任何内容。您需要向ListBox添加项目,在本例中为当前加速。
答案 1 :(得分:1)
您的问题是,每次单击按钮
时,您都在创建新车您需要一辆属于
形式的汽车Form1就像Car一样。添加一个类型为car的成员_car(就在类声明之后)
在表单的构造函数中
_car = new Car();
在点击方法中执行
_car.Accelerate();