浏览器

时间:2015-07-01 18:43:55

标签: c# asp.net webforms colordialog

我创建了一个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;
        }
    }

1 个答案:

答案 0 :(得分:0)

您正在服务器上显示对话框。

从Visual Studio运行代码时似乎有效,但这只是因为服务器和客户端碰巧是该实例中的同一台机器。

只要将代码部署到真实服务器,代码就会停止工作。如果您很幸运,您将收到一个异常,告诉您无法从非交互式进程中显示对话框。如果没有,您的代码将挂起,等待某人登录服务器并关闭对话框。

您需要使用客户端颜色选择器。谷歌有很多例子 - 例如: