我如何在不同的班级使用按钮,计时器等

时间:2019-05-04 11:09:49

标签: c# button

有一个抽象类,它的名字叫Hayvanlar,意思是动物,有4个类,分别是Inek,Ordek,Tavuk,Keci,它们的意思是Cow,Duck,Hen,Goat,并且在窗体上有纽扣,标签……我想在类的方法中使用它们。

//////////表单中的一些代码

namespace HayvanCiftligi2
{
    public partial class Form1 : Form
    {
        public Form1()
        {

            InitializeComponent();
            timerGecenSure.Start();
            timerOrdek.Start();
            TimerTavuk.Start();
            timerInek.Start();
            timerKeci.Start();

        }

        int gecenSure = 0;

        private void timer1_Tick(object sender, EventArgs e)
        {
            gecenSure++;
            lblGecenSureGosterim.Text = gecenSure.ToString();


            if (pBarTavuk.Value > 0)
            {
                pBarTavuk.Value -= 2;
                lblTavukDurum.Text = "Canlı";
            }
            else
            {
                pBarTavuk.Value = 0;
                lblTavukDurum.Text = "Öldü";
            }


            if (pBarOrdek.Value > 1)
            {
                pBarOrdek.Value -= 3;
                lblOrdekDurum.Text = "Canlı";

            }
            else
            {
                pBarOrdek.Value = 0;
                lblOrdekDurum.Text = "Öldü";
            }


            if (pBarInek.Value > 4)
            {
                pBarInek.Value -= 8;
                lblInekDurum.Text = "Canlı";
            }
            else
            {
                pBarInek.Value = 0;
                lblInekDurum.Text = "Öldü";
            }


            if (pBarKeci.Value > 4)
            {
                pBarKeci.Value -= 6;
                lblKeciDurum.Text = "Canlı";
            }
            else
            {
                pBarKeci.Value = 0;
                lblKeciDurum.Text = "Öldü";
            }



        }


        int TavukYumurtasi = 0;
        int OrdekYumurtasi = 0;
        int InekSutu = 0;
        int KeciSutu = 0;


        public void btnTavukYemVer_Click(object sender, EventArgs e)
        {
            if (pBarTavuk.Value > 0)
            {

                pBarTavuk.Value = 100;
            }
        }

        public void btnOrdekYemVer_Click(object sender, EventArgs e)
        {
            if (pBarOrdek.Value > 0)
            {
                pBarOrdek.Value = 100;
            }
        }

        private void btnInekYemVer_Click(object sender, EventArgs e)
        {
            if (pBarInek.Value > 0)
            {
                pBarInek.Value = 100;
            }

        }

        private void btnKeciYemVer_Click(object sender, EventArgs e)
        {
            if (pBarKeci.Value > 0)
            {
                pBarKeci.Value = 100;
            }

        }




        private void TimerTavuk_Tick_1(object sender, EventArgs e)
        {
            if (pBarTavuk.Value > 0)
            {
                TavukYumurtasi++;
                lblTavukYumurtasiSayisi.Text = TavukYumurtasi.ToString();
            }
        }

        private void timerOrdek_Tick_1(object sender, EventArgs e)
        {
            if (pBarOrdek.Value > 0)
            {
                OrdekYumurtasi++;
                lblOrdekYumurtasiSayisi.Text = OrdekYumurtasi.ToString();

            }
        }

        private void timerInek_Tick_1(object sender, EventArgs e)
        {
            if (pBarInek.Value > 0)
            {
                InekSutu++;
                lblInekSutuSayisi.Text = InekSutu.ToString();
            }
        }

        private void timerKeci_Tick_1(object sender, EventArgs e)
        {
            if (pBarKeci.Value > 0)
            {
                KeciSutu++;
                lblKeciSutuSayisi.Text = KeciSutu.ToString();
            }
        }

        int Kasa = 0;


        private void btnTavukYumurtasiSat_Click(object sender, EventArgs e)
        {
            int TavukUrun;
            TavukUrun = Convert.ToInt32(lblTavukYumurtasiSayisi.Text);
            Kasa += TavukUrun;
            TavukUrun = 0;
            TavukYumurtasi = 0;
            lblKasaGosterim.Text = Kasa.ToString();

            lblTavukYumurtasiSayisi.Text = "0";
        }

        private void btnInekSutuSat_Click(object sender, EventArgs e)
        {
            int InekUrun;
            InekUrun = Convert.ToInt32(lblInekSutuSayisi.Text);
            Kasa += 5 * InekUrun;
            InekUrun = 0;
            InekSutu = 0;
            lblKasaGosterim.Text = Kasa.ToString();

            lblInekSutuSayisi.Text = "0";
        }

        private void btnKeciSutuSat_Click(object sender, EventArgs e)
        {
            int KeciUrun;
            KeciUrun = Convert.ToInt32(lblKeciSutuSayisi.Text);
            Kasa += 8 * KeciUrun;
            KeciUrun = 0;
            KeciSutu = 0;
            lblKasaGosterim.Text = Kasa.ToString();

            lblKeciSutuSayisi.Text = "0";
        }


        private void btnOrdekYumurtasiSat_Click(object sender, EventArgs e)
        {
            int OrdekUrun;
            OrdekUrun = Convert.ToInt32(lblOrdekYumurtasiSayisi.Text);
            Kasa += 3 * OrdekUrun;
            OrdekUrun = 0;
            OrdekYumurtasi = 0;
            lblKasaGosterim.Text = Kasa.ToString();

            lblOrdekYumurtasiSayisi.Text = "0";

        }
    }
}

///////////抽象类

public abstract class Hayvanlar:Form1
{
    public int HayvanSagligi { get; set; } = 100;

    public void Yemyer()
    {

        HayvanSagligi = 100;
    }

    public abstract void UrunVerir(object sender, EventArgs e);
  public abstract void OlumSes();

}

//////////////////////类

class Ordek : Hayvanlar
{
    public override void OlumSes()
    {

    }

    public override void UrunVerir(object sender, EventArgs e)
    {

    }
}

1 个答案:

答案 0 :(得分:1)

默认情况下,表单中的字段不可公开访问。

一种解决方案是在主Forms类的某个方法中公开要执行的按钮操作。

例如

public void DisableButton()
{
    myButton.IsEnabled = false;
}