0
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 Cameron_PickerillTrinitapoli_Assn1
{
    public partial class seasonalBttnChanger : Form
    {
        public seasonalBttnChanger()
        {
            InitializeComponent();
        }

        //Triggers when program first loads
        //Sets up
        private void bttnChanger_Load(object sender, EventArgs e)
        {
            List<Button> lstTxt = new List<Button>
            {
            bttnSpring, bttnSummer, bttnAutumn, bttnWinter
            };

            //Wiring up event handlers in run time
            foreach (Button txt in lstTxt)
            {
                txt.MouseEnter += button_MouseEnter;
                txt.MouseLeave += button_MouseLeave;
            }
        }

        // Sets up different background colors for TextBoxes
        //* Static values for the color of each button need
        //to be added.
        //**Not what I was trying to accomplish
        //**This needs to go somewhere else
        void button_MouseEnter(object sender, EventArgs e)
        {
            try
            {
                // Event handlers always pass the parameter "sender" in as an object.
                //  You have to downcast it back to the actual type.
                String bttnName = null;
                String bttnNameSpring = "Spring";
                String bttnNameSummer = "Summer";
                String bttnNameAutumn = "Autumn";
                String bttnNameWinter = "Winter";
                Button txt = (Button)sender;
               // stkColor.Push(txt.BackColor);
                //txt.BackColor = Color.Red;
                bttnName = txt.Name;

                if (bttnName == bttnNameSpring)
                {
                    txt.BackColor = Color.LightGreen;
                }
                else if (bttnName == bttnNameSummer)
                {
                    //txt.BackColor = Color.Red;
                    txt.BackColor = Color.Red;
                }
                else if (bttnName == bttnNameAutumn)
                {
                    txt.BackColor = Color.Yellow;
                }
                else if (bttnName == bttnNameWinter)
                {
                    txt.BackColor = Color.Cyan;
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show("Error:\n   " + ex.Message);
            }
        }

        //Handler for mouse leaving the button
        void button_MouseLeave(object sender, EventArgs e)
        {
            try
            {
                Button txt = (Button)sender;
                //txt.BackColor = stkColor.Pop();
            }
            catch (Exception ex)
            {
                MessageBox.Show("Error:\n   " + ex.Message);
            }
          }
        }
    }
}

わかりましたので、これらのボタンにマウスを合わせると、これらのボタンの背景色を無地の色に変更する簡単なプログラムを作成しようとしています。TextBox を使用して同じことを行いましたが、ボタンで動作させる必要があります。Button クラスを使用するようにすべてを変更しましたが、すべて同じ機能を備えているように見えますが、プログラムは実行されますが、マウスをボタンの上に置いても何も起こりません。

私はC#、スタック交換にはかなり慣れていませんが、プログラミング全般には少しだけ慣れていないので、エチケットや質問のフォーマットなどにうんざりしていたら申し訳ありません.

4

1 に答える 1