Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/272.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 颜色对话框显示在浏览器后面_C#_Asp.net_Webforms_Colordialog - Fatal编程技术网

C# 颜色对话框显示在浏览器后面

C# 颜色对话框显示在浏览器后面,c#,asp.net,webforms,colordialog,C#,Asp.net,Webforms,Colordialog,我创建了一个ASP.NET Web表单应用程序,当我单击按钮以显示颜色对话框时,它在第一次单击时即可正常工作。随后单击,对话框显示在浏览器后面。我从一些帖子中注意到,人们在表单上放置了一个颜色对话框。我不知道为什么,但是颜色对话框在我的工具箱里没有。期待答案,看看我的ID-10-T错误。谢谢 protected void Button1_Click(object sender, EventArgs e) { ColorDialog colorDialog = ne

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

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

当您从VisualStudio运行代码时,它似乎可以工作,但这只是因为该实例中的服务器和客户端恰好是同一台机器

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

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


请添加一些代码。共享您的研究有助于每个人。告诉我们您尝试了什么(显示您的代码!)以及为什么它不能满足您的需求。这表明你花了时间来帮助自己,它使我们避免重复显而易见的答案,最重要的是,它帮助你得到一个更具体和相关的答案!另请参见抱歉造成的混乱。以下是单击事件的代码