簡體   English   中英

從菜單項中選擇圖像時如何更改表格的背景色

[英]how to change background color of form when image selected from menuitems

在我的表單中,我有應用程序來更改表單的背景色,當菜單項選擇更改時,需要在哪個事件上編寫代碼? 請幫我。

我認為您是在談論燈箱效果,例如在以下網址中顯示的內容:

http://www.huddletogether.com/projects/lightbox2/

http://en.wikipedia.org/wiki/Lightbox_%28JavaScript%29

如果是,建議您使用可用的現成燈箱js。 我可以提供更多信息。 在此之前,如果符合您的要求,請遍歷此內容。

在WinForms表單上,我設置了一個ToolStripMenuItem,其中包含1個名為ToolsStripMenuItemColors的ToolStripMenuItem。 在其DropDownItems中,我添加了另外3個具有Text屬性“ Red”,“ Green”,“ Blue”的ToolStripMenuItems。

我迷上了他們的.Click事件。 在事件處理程序中,我確定單擊了哪個項目並將其Clicked屬性設置為true。 在其他情況下,我將其設置為false。 這兩個步驟僅用於顯示目的,並非完全必要。 然后,在case語句中使用所選項目的.Text屬性來確定將窗體的BackColor設置為哪種顏色。 這不是解決這個問題的最優雅的方法,但是它應該可以幫助您入門。 一種更好的可能方法是將Color存儲在ToolStripMenuItem的Tag屬性中,並避免基於字符串的case語句。

還有一個CheckOnClick屬性和一個CheckedChanged事件可以使用,但是我認為處理Click事件會更好,因為您一次只希望選擇一個選項。

using System;
using System.Drawing;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();

            foreach (ToolStripMenuItem item in toolStripMenuItemColors.DropDownItems)
            {
                item.Click += ItemClick;
            }
        }

        private void ItemClick(object sender, EventArgs e)
        {
            foreach (ToolStripMenuItem item in toolStripMenuItemColors.DropDownItems)
            {
                if (item.Equals(sender))
                {
                    item.Checked = true;
                }
                else
                {
                    item.Checked = false;
                }
            }

            string color =((ToolStripMenuItem)sender).Text;
            Color newColor = this.BackColor;

            switch (color)
            {
                case "Red":
                    newColor = Color.Red;
                    break;
                case "Blue":
                    newColor = Color.Blue;
                    break;
                case "Green":
                    newColor = Color.Green;
                    break;
                default:
                    break;
            }
            BackColor = newColor;
        }
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM