none
winform:ComboBox设置成DropDownList之后如何更颜色? RRS feed

  • 问题

  • 当我把ComboBox控件设置成DropDownList,希望只能选不能输入,但是控件变成了灰色的,有什么办法可以使用原先的白色呢?
    2014年1月17日 7:31

答案

  • 建议可以使用 DropDownStyle = ComboBoxStyle.DropDown,再加上一个事件使输入变无效,就可以达到此要求:

    private void comboBox1_KeyPress(object sender, KeyPressEventArgs e)
    {
        e.Handled = true;
    }
    可以用这个方法试看看。


    • 已编辑 David Kuo 2014年1月17日 12:34
    • 已建议为答案 THKAW 2014年1月18日 19:13
    • 已标记为答案 CaillenModerator 2014年1月23日 7:47
    2014年1月17日 12:17
  • 如要防止右键点击,可以参考下面做法:

    private void comboBox1_MouseDown(object sender, MouseEventArgs e)
    {
        if (e.Button == System.Windows.Forms.MouseButtons.Right)
        {
            MessageBox.Show("Right click is disabled");
        }
    }

    2014年1月19日 10:53

全部回复

  • 建议可以使用 DropDownStyle = ComboBoxStyle.DropDown,再加上一个事件使输入变无效,就可以达到此要求:

    private void comboBox1_KeyPress(object sender, KeyPressEventArgs e)
    {
        e.Handled = true;
    }
    可以用这个方法试看看。


    • 已编辑 David Kuo 2014年1月17日 12:34
    • 已建议为答案 THKAW 2014年1月18日 19:13
    • 已标记为答案 CaillenModerator 2014年1月23日 7:47
    2014年1月17日 12:17
  • 建议可以使用 DropDownStyle = ComboBoxStyle.DropDown,再加上一个事件使输入变无效,就可以达到此要求:

    private void comboBox1_KeyPress(object sender, KeyPressEventArgs e)
    {
        e.Handled = true;
    }
    可以用这个方法试看看。


    感谢您的回复,经过测试,这个方法有一个缺点,就是无法防止复制+粘贴的方法,不完美。
    2014年1月18日 6:12
  • 如要防止右键点击,可以参考下面做法:

    private void comboBox1_MouseDown(object sender, MouseEventArgs e)
    {
        if (e.Button == System.Windows.Forms.MouseButtons.Right)
        {
            MessageBox.Show("Right click is disabled");
        }
    }

    2014年1月19日 10:53