![](/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.