按钮启用无法正常工作 [英] Button enabling not working correctly

查看:50
本文介绍了按钮启用无法正常工作的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在开发一个迷你点击器游戏,它没有什么大问题,但是我在启用按钮方面遇到了问题,但是我可以将其禁用.我仍在学习,我认为可以问这样的愚蠢问题.:D

I am working on a mini clicker game, it is not anything big, but i am having a problem with enabling my button, but i can disable it. I am still learning and i think it is okay to ask stupid questions like this. :D

这是我的代码:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;


namespace Diamond_Clicker
{
    public partial class Form1 : Form
    {
        private int clicks = 0;
        private int counter = 1;

        public Form1()
        {
            InitializeComponent();

        }
        private void myDiamond_MouseUp(object sender, MouseEventArgs e)
        {

            myDiamond.Image = Image.FromFile("C:\\Matej Dodevski\\Semos\\C#\\Diamond     Clicker\\diamond.png");

        }

        private void myDiamond_MouseDown(object sender, MouseEventArgs e)
        {
            myDiamond.Image = Image.FromFile("C:\\Matej Dodevski\\Semos\\C#\\Diamond Clicker\\diamondMouseUp.png");
            clicks++;
            DiamondsScore.Text = "Diamonds: " + clicks.ToString();

        }

        private void timer1_Tick(object sender, EventArgs e)
        {
            clicks++;
        }

        private void timer1_Tick_1(object sender, EventArgs e)
        {
            counter++;

            clicks = clicks + 1;
            DiamondsScore.Text = "Diamonds: " + clicks.ToString();

        }

        private void button1_Click(object sender, EventArgs e)
        {
            clicks = clicks - 50;
            DiamondsScore.Text = "Diamonds: " + clicks.ToString();
            timer1.Enabled = true;

        }

        private void Form1_Load(object sender, EventArgs e)
         {

            if (clicks > 5)
          {
            button1.Enabled = true;
          }
            else
            button1.Enabled = false;
        }

    }
}

推荐答案

The Load Event is intended to get executed one time, and that's just before the form is displayed on the screen. Usually this event is where you would do some kind of one time initialization.

您需要做的是将该代码放入函数中

What you need to do instead is put that code into a function:

private void UpdateButton()
{
    if (clicks > 5)
        button1.Enabled = true;
    else button1.Enabled = false;

    // This function can be reduced to one line of code:
    // button1.Enabled = clicks > 5;
}

然后,您需要在button1_click函数,timer1_tick函数,mousedown函数和timer1_tick_1函数的末尾调用此函数.基本上,可以将clicks变量更改为任何函数.

Then you need to call this function at the end of your button1_click function, timer1_tick function, mousedown function and your timer1_tick_1 functions. Basically, into any function where the clicks variable can change.

这篇关于按钮启用无法正常工作的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆