![](/img/trans.png)
[英]How is it possible to change datagrid cell background color when is selected and focused?
[英]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.