1

正確に何を尋ねたらよいかわかりません。Car[加速] ボタンをクリックしたときに名前が付けられたクラスを作成しましたForm1。これを行うには、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 = ???????
        }
    }
}
4

2 に答える 2

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 にアイテムを追加する必要があります。この場合は、現在の加速度です。

于 2012-11-12T18:40:24.553 に答える
1

あなたの問題は、ボタンをクリックするたびに新しい車を作成していることです

フォームのメンバーである車が必要です

Form1 は Car と同じクラスです。タイプ car の A member _car をそれに追加します (class ステートメントの直後)。

フォームのコンストラクターで

_car = new Car();

クリックメソッドで

_car.Accelerate();
于 2012-11-12T18:38:43.173 に答える