想请问一下要怎么让ComboBox点到时不会出现下拉选单...
1.因为画面美观...所以一定要用ComboBox....
2.因为画面美观...所以不要Enable = false....
请问各位大大我还有什么方法可以做出这样的效果??
PS:虽然我用的是VS2003所以如果有VS2003的方法最好,不过如果没有也希望各位大大给我一些建议,谢谢!!
1.因为画面美观...所以一定要用ComboBox....
2.因为画面美观...所以不要Enable = false....
请问各位大大我还有什么方法可以做出这样的效果??
PS:虽然我用的是VS2003所以如果有VS2003的方法最好,不过如果没有也希望各位大大给我一些建议,谢谢!!
你说用Focus嘛…那还是会闪…所以使用者也不要…
{
this.comboBox1.Items.Clear();
}
{
this.comboBox1.Focus();
}
偶而下拉框会闪烁一下,把DorpDownHeight 设成1 应该可以接受吧
找到--DropDownStyle-
只有3个选择,你看看喜欢那个
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
其实Enable = false可以通过修改颜色,看起来和Enable = true是一样的~
可不可以再說明白一點...不太懂這要怎麼用耶??
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等
我慢慢按是不会有…可是我如果是快按两下…就会有闪动…
请问DoubleClick的值是多少…
而这些值要怎么查的到呀??谢谢!!
{
this.comboBox1.Focus();
}这样不是很容易达到你的要求了吗?为什么去用复杂的方法吗?
{
this.comboBox1.Items.Clear();
}
可是我要让使用者看到之前设定的值…
如果把Item都Clear掉就所有数据都变空的…
且还是会有一个下拉框…
感谢大家的推荐…但这不是我要的结果…
其实Enable = false可以通过修改颜色,看起来和Enable = true是一样的~这个是可以的,自己设置颜色
它的文字是灰灰的...看不清楚...
不是wkxgyg大大是不是有方法可以更改...??
请问一下BeforeDropDownEventArgs是新版的VS才有吗??
因为我在我的VS2003 Document中也找不到耶?!
对这个你可以把enable之后的颜色设置一下 效果就一致了