想请问一下要怎么让ComboBox点到时不会出现下拉选单...
1.因为画面美观...所以一定要用ComboBox....
2.因为画面美观...所以不要Enable = false....
请问各位大大我还有什么方法可以做出这样的效果??
PS:虽然我用的是VS2003所以如果有VS2003的方法最好,不过如果没有也希望各位大大给我一些建议,谢谢!! 

解决方案 »

  1.   

    不下拉就不要用combobox了嘛,用textbox不就行了?
      

  2.   

    手边没环境,不给你写代码了。最简单的就是把ComboxBox存成图片,设为textBox的背景,就解决了。
      

  3.   

    zl194:
    你说用Focus嘛…那还是会闪…所以使用者也不要…
      

  4.   

          private void comboBox1_Enter(object sender, EventArgs e)
            {
                this.comboBox1.Items.Clear();
            }
      

  5.   

            private void comboBox1_MouseDown(object sender, MouseEventArgs e)
            {
                this.comboBox1.Focus();
            }
      

  6.   


    偶而下拉框会闪烁一下,把DorpDownHeight 设成1 应该可以接受吧
      

  7.   

    属性可以设置
    找到--DropDownStyle-
    只有3个选择,你看看喜欢那个
      

  8.   

            #region win32
            private const uint WM_COMMAND = 0x0111;
            private const uint WM_USER = 0x0400;
            private const uint WM_REFLECT = WM_USER + 0x1C00;
            private const uint WM_LBUTTONDOWN = 0x0201;        private const uint CBN_DROPDOWN = 7;
            private const uint CBN_CLOSEUP = 8;
            private static uint HIWORD(int n)
            {
                return (uint)(n >> 16) & 0xffff;
            }        protected override void WndProc(ref System.Windows.Forms.Message m)
            {
                if (m.Msg == (WM_REFLECT + WM_COMMAND))
                {
                    if (HIWORD((int)m.WParam) == CBN_DROPDOWN)
                    {
                        BeforeDropDownEventArgs e = new BeforeDropDownEventArgs();
                        this.e_BeforeDrowDown(this, e);
                        if (!e.Cancel)
                        {
                            this.fnShowControl();
                        }
                        return;
                    }
                }
                base.WndProc(ref m);
            }
            #endregion
      

  9.   

    再把把DorpDownHeight 设成1 应该可以哟 
      

  10.   

    .因为画面美观...所以不要Enable = false.... 
    其实Enable = false可以通过修改颜色,看起来和Enable = true是一样的~
      

  11.   

    zanfeng大大:
    可不可以再說明白一點...不太懂這要怎麼用耶??
      

  12.   

    继承ComboBox自定义一个MyComboBox,在这个类中重写窗口处理函数WndProc:
            protected override void WndProc(ref System.Windows.Forms.Message m)
            {
                //when press left mouse,WM_LBUTTONDOWN
                if (m.Msg == 0x0201)
                {
                    return;
                }
                base.WndProc(ref m);
            }
    这样左鼠标单击时下拉菜单不显示。实际应用你再完善一下,比如加入屏蔽条件,屏蔽DoubleClick等
      

  13.   

    yuanhuiqiao大大:
    我慢慢按是不会有…可是我如果是快按两下…就会有闪动…
    请问DoubleClick的值是多少…
    而这些值要怎么查的到呀??谢谢!!
      

  14.   

            private void comboBox1_MouseDown_1(object sender, MouseEventArgs e)
            {
                this.comboBox1.Focus();
            }这样不是很容易达到你的要求了吗?为什么去用复杂的方法吗?
      

  15.   

    private void comboBox1_Enter(object sender, EventArgs e) 
            { 
                this.comboBox1.Items.Clear(); 
            }
      

  16.   

    我有试this.comboBox1.Items.Clear();
    可是我要让使用者看到之前设定的值…
    如果把Item都Clear掉就所有数据都变空的…
    且还是会有一个下拉框…
    感谢大家的推荐…但这不是我要的结果…
      

  17.   

    .因为画面美观...所以不要Enable = false.... 
    其实Enable = false可以通过修改颜色,看起来和Enable = true是一样的~这个是可以的,自己设置颜色
      

  18.   

    無法設定文字的顏吧?!
    它的文字是灰灰的...看不清楚...
    不是wkxgyg大大是不是有方法可以更改...??
      

  19.   

    zanfeng大大:
    请问一下BeforeDropDownEventArgs是新版的VS才有吗??
    因为我在我的VS2003 Document中也找不到耶?!
      

  20.   

    双击WM_LBUTTONDBLCLK = 0x0203,应该是你可以确认一下
      

  21.   


    对这个你可以把enable之后的颜色设置一下 效果就一致了
      

  22.   

    设置ComboBox的 样式属性,有一个样式是没下拉的
      

  23.   

    不要拉就不要用吧,为了美观的话,就放个text框,旁边放个picturebox贴个象下拉的箭头上去就好了,做的地道的话,可以加个鼠标移入后的事件,再贴张图片上去,达到逼真效果