DevGridControl中如何实现类似百度搜索提示的功能啊

_XuDaojie 2014-03-12 11:22:29
在输入时显示出一个GridControl的方法可行吗,或者还有更好的方法吗
...全文
266 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
hard_learner 2014-03-12
  • 打赏
  • 举报
回复
参考下面截图中的步骤:



hard_learner 2014-03-12
  • 打赏
  • 举报
回复
gridcontrol的列中嵌入 lookupedit 控件或searchlookupedit控件
水目 2014-03-12
  • 打赏
  • 举报
回复
这种?

我用textbox 实现过

用了一个listbox作为下拉列表
水目 2014-03-12
  • 打赏
  • 举报
回复

private void txtName_TextChanged(object sender, EventArgs e)
        {
            DataTable dt = new DataTable();
          
            string sql = "select * from CustInfo where 1=1   ";
            if (!string.IsNullOrEmpty(txtName.Text.Trim()))
            {
                sql += "and CustName like  '%" + txtName.Text.Trim() + "%'  ";
            }
            dt = DBHelper.ExecuteDataTableSql(sql);

            if (dt.Rows.Count > 0)
            {
                this.listBoxAuto.Visible = true;
                this.listBoxAuto.Items.Clear();
                for (int i = 0; i < dt.Rows.Count; i++)
                {
                    if (!listBoxAuto.Items.Contains(dt.Rows[i]["CustName"].ToString()))
                        this.listBoxAuto.Items.Add(dt.Rows[i]["CustName"].ToString());
                }
                listBoxAuto.Height = listBoxAuto.ItemHeight * (listBoxAuto.Items.Count + 1);
            }
        }


private void txtName_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Down)
            {
                if (listBoxAuto.SelectedIndex != listBoxAuto.Items.Count - 1)
                {
                    listBoxAuto.SelectedIndex += 1;
                }
                else
                {
                    listBoxAuto.SelectedIndex = 0;
                }
            }
            if (e.KeyCode == Keys.Up)
            {
                if (listBoxAuto.SelectedIndex != 0)
                {
                    listBoxAuto.SelectedIndex -= 1;
                }
                else
                {
                    listBoxAuto.SelectedIndex = listBoxAuto.Items.Count - 1;
                }
            }
            if (listBoxAuto.SelectedIndex > -1)
            {
                if (e.KeyCode == Keys.Enter)
                {
                    DateTime? custdate = null;
                    string status = "";
                    if (dateTimePickercustdate.Checked)
                    {
                        custdate = dateTimePickercustdate.Value.Date;
                    }
                    if (CBstatue.SelectedItem != null)
                    {
                        status = CBstatue.SelectedItem.ToString().Trim();
                    }
                    SearchData(txtName.Text = listBoxAuto.SelectedItem.ToString(), status.Trim(), custdate);
                    listBoxAuto.Visible = false;
                    txtName.Select(txtName.Text.Trim().Length, 0);
                }
            }
            else if (e.KeyCode == Keys.Enter)
            {
                DateTime? custdate = null;
                string status = "";
                if (dateTimePickercustdate.Checked)
                {
                    custdate = dateTimePickercustdate.Value.Date;
                }
                if (CBstatue.SelectedItem != null)
                {
                    status = CBstatue.SelectedItem.ToString().Trim();
                }
                SearchData(txtName.Text, status.Trim(), custdate);
                listBoxAuto.Visible = false;
                txtName.Select(txtName.Text.Trim().Length, 0);
            }
        }
楼主可以参考下 我这个目前我能用 到那时可能不是那么好 恩 还有一些属性可能要楼主根据情况控制下
_XuDaojie 2014-03-12
  • 打赏
  • 举报
回复
引用 4 楼 a379992210 的回复:
[quote=引用 3 楼 hard_learner 的回复:] 参考下面截图中的步骤:
这个我试了下貌似只能像checkbox那样进行选择,而不能进行编辑,我输入的内容也想百度那样并不是所有的内容都找到对应的提示的[/quote]找到原因了 只要设置TextEditStyle属性就可以了
水目 2014-03-12
  • 打赏
  • 举报
回复
文本框的TextChanged中给list添加项 文本框的KeyDown做搜索操作
灬浪子灬 2014-03-12
  • 打赏
  • 举报
回复
自己可以写一个控件!TextBox+ListBox实现可以搜索的舒服功能!
_XuDaojie 2014-03-12
  • 打赏
  • 举报
回复
引用 1 楼 qyj2009 的回复:
这种? 我用textbox 实现过 用了一个listbox作为下拉列表
对的 我想法差不多也是这样 就是不知道怎么实现
_XuDaojie 2014-03-12
  • 打赏
  • 举报
回复
引用 3 楼 hard_learner 的回复:
参考下面截图中的步骤:
这个我试了下貌似只能像checkbox那样进行选择,而不能进行编辑,我输入的内容也想百度那样并不是所有的内容都找到对应的提示的

110,535

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧