Visual Studio 2015 C# 文本框点击颜色对话框

Visual Studio 2015 C# color dialog for textbox when clicked in

所以我正在尝试创建一个小程序,当您在一个空文本框中单击时,将出现一个对话框并更改文本框的背景。现在我尝试使用波纹管代码,但它什么也没做。文本框处于只读模式。非常感谢任何帮助。

 private void textBox1_Enter(object sender, System.EventArgs e)
    {
        colorDialog1.ShowDialog();
        textBox1.BackColor = colorDialog1.Color;

    }

(如果您使用的是 Windows 表单(我假设您是),您应该对其进行标记,并且不应该使用 "Visual Studio" 标记)

如果我创建一个 Windows 表单应用程序,请在表单上放置一个文本框和一个颜色对话框,然后添加以下代码:

    private void textBox1_Enter(object sender, EventArgs e)
    {
        if (colorDialog1.ShowDialog() == DialogResult.OK)
        {
            textBox1.BackColor = colorDialog1.Color;
        }
    }

...向上弹出颜色对话框。如果我选择一种颜色并按确定,文本框的背景颜色会改变。我在将 ReadOnly 设置为 true 和不将 ReadOnly 设置为 true 的情况下进行了尝试(我很惊讶你可以 "Enter" 一个只读文本框,但是......)。

那么,您是否看到颜色对话框弹出并且您 select 一种颜色并按 OK 然后什么也看不到?真令人惊讶。或者,您还看到其他东西吗?

就其价值而言,这不是一个很棒的 UI 设计。我不希望由于单击文本框而弹出另一个对话框。另请注意,这可能只会发生一次。单击文本框后,您就输入了它。在再次单击文本框之前,您必须将焦点设置在另一个控件上。如果您在 over 上单击相同的位置,则只会在第一次输入。