找回密码
 立即注册

QQ登录

只需一步,快速开始

lhx74cn

初级会员

26

主题

71

帖子

351

积分

初级会员

积分
351

微信认证勋章

lhx74cn
初级会员   /  发表于:2021-2-21 16:02  /   查看:3383  /  回复:7
老师您好!         c1combo 控件,我通过代码捕获回车键弹出下拉框, 弹出下列框的方法是什么?

7 个回复

倒序浏览
lhx74cn
初级会员   /  发表于:2021-2-21 20:38:23
沙发
        private void c1Combo1_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Enter)
            {
                DataTable dt_mate = new DataTable();
                dt_mate = db.QueryDataTable("select fNumber,fName,mateCateId,mateCateName from materiel where (fNumber like '%" + c1Combo1.Text.Trim() + "%') OR (fName like '%" + c1Combo1.Text.Trim() + "%') order by fName");
                c1Combo1.ClearItems();
                c1Combo1.AddItemTitles("代码;名称;属性代码;属性名称");
                if (dt_mate.Rows.Count > 0)
                {
                    for (int r = 0; r < dt_mate.Rows.Count; r++)
                    {
                        c1Combo1.AddItem(dt_mate.Rows[r]["fNumber"].ToString() + "; " + dt_mate.Rows[r]["fName"].ToString() + "; " + dt_mate.Rows[r]["mateCateId"].ToString() + "; " + dt_mate.Rows[r]["mateCateName"].ToString());
                    }

                    c1Combo1.DisplayMember = "fName";
                    c1Combo1.ValueMember = "fNumber";
                    c1Combo1.RowDivider.Style = C1.Win.C1List.LineStyleEnum.None; //去除列表横线
                    c1Combo1.Columns[0].Caption = "代码";
                    c1Combo1.Columns[1].Caption = "名称";
                    c1Combo1.Columns[2].Caption = "属性代码";
                    c1Combo1.Columns[2].Caption = "属性名称";
                    c1Combo1.Splits[0].DisplayColumns[0].Width = 80;
                    c1Combo1.Splits[0].DisplayColumns[1].Width = 400;
                    c1Combo1.Splits[0].DisplayColumns[2].Width = 40;
                    c1Combo1.Splits[0].DisplayColumns[3].Width = 80;
                }
                c1Combo1.OpenCombo();
            }
        }
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2021-2-22 09:46:30
板凳
我看到你下面已经列出了解决问题的代码,目前还存在其他的问题吗?
回复 使用道具 举报
lhx74cn
初级会员   /  发表于:2021-2-22 10:11:31
地板
在 c1Combo1_KeyDown事件中 用c1Combo1.OpenCombo(); 无法弹出下拉框。
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2021-2-22 11:02:56
5#
收到,这个问题我需要和研发确认一下,OpenCombo目前确实无法打开下拉框
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2021-3-3 11:00:50
6#
你好,已经验证,无法打开下拉框的原因是,KeyDown事件后,又有其他的事件将下拉框收起了

你可以在KeyUp事件中,使用相同的代码,即可打开下拉框

  1.         private void C1Combo1_KeyUp(object sender, KeyEventArgs e)
  2.         {
  3.             if (e.KeyCode == Keys.Enter)
  4.             {

  5.                 c1Combo1.OpenCombo();
  6.             }
  7.         }
复制代码
回复 使用道具 举报
lhx74cn
初级会员   /  发表于:2021-3-3 12:32:58
7#
老师您好!
       感谢您的回复,谢谢!解决了!
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2021-3-3 13:38:22
8#
不客气
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部