我创建了一个ASP.NET Web窗体应用程序,当我单击我的按钮以显示颜色对话框时,它可以在第一次单击时正常工作。随后单击该对话框将显示在浏览器后面。我从一些帖子中注意到人们在表单上放置了一个颜色对话框。我不知道为什么,但颜色对话框在我的工具箱中没有。期待看到我的ID-10-T错误的答案。谢谢!
protected void Button1_Click(object sender, EventArgs e)
{
ColorDialog colorDialog = new ColorDialog();
colorDialog.AnyColor = true;
colorDialog.AllowFullOpen = false;
if (colorDialog.ShowDialog() == DialogResult.OK)
{
string str = null;
str = colorDialog.Color.Name;
if (str.Substring(0, 2) == "ff")
{
str = "#" + str.Substring(2);
}
//MessageBox.Show(str);
lblTo.ForeColor = System.Drawing.ColorTranslator.FromHtml(str);
lblFrom.ForeColor = System.Drawing.ColorTranslator.FromHtml(str);
lblDate.ForeColor = System.Drawing.ColorTranslator.FromHtml(str);
lblTime.ForeColor = System.Drawing.ColorTranslator.FromHtml(str);
pnlKudos.BackColor = System.Drawing.ColorTranslator.FromHtml(str);
pnlKudos.ForeColor = System.Drawing.ColorTranslator.FromHtml(str);
txtButWait.BorderColor = System.Drawing.ColorTranslator.FromHtml(str);
string sTemp = "border: 0px #fff solid;";
txtExtra.Attributes["style"] = sTemp;
sTemp = "border-bottom: 1px " + str + " solid;";
txtExtra.Attributes["style"] = sTemp;
sTemp = "background-color: " + str;
divKudos.Attributes["style"] = sTemp;
}
}
答案 0 :(得分:0)
您正在服务器上显示对话框。
从Visual Studio运行代码时似乎有效,但这只是因为服务器和客户端碰巧是该实例中的同一台机器。
只要将代码部署到真实服务器,代码就会停止工作。如果您很幸运,您将收到一个异常,告诉您无法从非交互式进程中显示对话框。如果没有,您的代码将挂起,等待某人登录服务器并关闭对话框。
您需要使用客户端颜色选择器。谷歌有很多例子 - 例如: