找回密码
 立即注册

QQ登录

只需一步,快速开始

liuyinlong

初级会员

24

主题

59

帖子

448

积分

初级会员

积分
448

活字格认证

liuyinlong
初级会员   /  发表于:2014-12-24 22:20  /   查看:12659  /  回复:12
winfrom combobox如何支持上下方向键选择?谢谢

12 个回复

倒序浏览
iceman
社区贡献组   /  发表于:2014-12-25 11:07:00
沙发
回复 1楼liuyinlong的帖子

使用 AcceptsArrowKeys 控制键盘动作,测试代码如下:

  1.             FarPoint.Win.Spread.CellType.ComboBoxCellType cmbocell = new FarPoint.Win.Spread.CellType.ComboBoxCellType();
  2.             cmbocell.Items = (new String[] { "January", "February", "March", "April", "May", "June" });
  3.             cmbocell.AcceptsArrowKeys = FarPoint.Win.SuperEdit.AcceptsArrowKeys.AllArrows;
  4.             cmbocell.AutoSearch = FarPoint.Win.AutoSearch.SingleCharacter;
  5.             cmbocell.Editable = true;
  6.             cmbocell.ListAlignment = FarPoint.Win.ListAlignment.Left;
  7.             cmbocell.ListOffset = 20;
  8.             cmbocell.ListWidth = 0;
  9.             cmbocell.MaxDrop = 4;
  10.             fpSpread1.Sheets[0].Cells[2, 2].CellType = cmbocell;
复制代码
回复 使用道具 举报
liuyinlong
初级会员   /  发表于:2014-12-25 13:25:00
板凳
FarPoint.Win.Spread.CellType.ComboBoxCellType comboBoxCellType3 = new FarPoint.Win.Spread.CellType.ComboBoxCellType();
            DataTable dtMt = ((DataTable)cbo_qishidi.DataSource).Copy();
            string[] piername = new string[dtMt.Rows.Count];
            string[] pierid = new string[dtMt.Rows.Count];
            for (int i = 0; i < dtMt.Rows.Count; i++)
            {
                piername = dtMt.Rows["piername"].ToString();
                pierid = dtMt.Rows["pierid"].ToString();
            }
            comboBoxCellType3.Items = piername;
            comboBoxCellType3.ItemData = pierid;
            comboBoxCellType3.EditorValue = FarPoint.Win.Spread.CellType.EditorValue.ItemData;
            comboBoxCellType3.AutoSearch = FarPoint.Win.AutoSearch.MultipleCharacter;
            comboBoxCellType3.AcceptsArrowKeys = FarPoint.Win.SuperEdit.AcceptsArrowKeys.AllArrows;
            comboBoxCellType3.Editable = true;
            comboBoxCellType3.AutoCompleteMode = AutoCompleteMode.SuggestAppend;
            comboBoxCellType3.AutoCompleteSource = AutoCompleteSource.ListItems;
你好,我的代码是这样的,但是不支持方向键选择
回复 使用道具 举报
liuyinlong
初级会员   /  发表于:2014-12-25 13:32:00
地板
回复 2楼iceman的帖子


QQ截图20141225132942.png
这样的效果但是只能鼠标选择,如何实现方向键上下选择?谢谢
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2014-12-25 14:15:00
5#
回复 4楼liuyinlong的帖子

请问3#代码您能跑起来吗?dtMt.Rows[这里应该添加整形]。
修改代码如下:
  1.             FarPoint.Win.Spread.CellType.ComboBoxCellType comboBoxCellType3 = new FarPoint.Win.Spread.CellType.ComboBoxCellType();
  2.             DataTable dtMt = new DataTable();
  3.             dtMt.Columns.Add("piername");
  4.             dtMt.Columns.Add("pierid");
  5.             dtMt.Rows.Add("test1", "1");
  6.             dtMt.Rows.Add("test2", "2");

  7.             string[] piername = new string[dtMt.Rows.Count];
  8.             string[] pierid = new string[dtMt.Rows.Count];
  9.             for (int i = 0; i < dtMt.Rows.Count; i++)
  10.             {
  11.                 piername[i] =dtMt.Rows[i]["piername"].ToString();
  12.                 pierid[i] = dtMt.Rows[i]["pierid"].ToString();
  13.             }

  14.             comboBoxCellType3.Items = piername;
  15.             comboBoxCellType3.ItemData = pierid;
  16.             comboBoxCellType3.EditorValue = FarPoint.Win.Spread.CellType.EditorValue.ItemData;
  17.             comboBoxCellType3.AutoSearch = FarPoint.Win.AutoSearch.MultipleCharacter;
  18.             comboBoxCellType3.AcceptsArrowKeys = FarPoint.Win.SuperEdit.AcceptsArrowKeys.AllArrows;
  19.             comboBoxCellType3.Editable = true;
  20.             comboBoxCellType3.AutoCompleteMode = AutoCompleteMode.SuggestAppend;
  21.             comboBoxCellType3.AutoCompleteSource = AutoCompleteSource.ListItems;
  22.             fpSpread1.Sheets[0].Cells[2, 2].CellType = comboBoxCellType3;
复制代码


测试 Demo:
Spread 8.0 + VS2013 + C#:
15106.zip (62.56 KB, 下载次数: 872)
回复 使用道具 举报
liuyinlong
初级会员   /  发表于:2014-12-25 14:20:00
6#
回复 5楼iceman的帖子

我明白您的操作,您的操作需要点击下下拉才能上下方向键选择,而我的操作是输入关键字,然后模糊匹配字段下拉出数据,这时候直接键盘上下选择操作
回复 使用道具 举报
liuyinlong
初级会员   /  发表于:2014-12-25 15:33:00
7#
回复 5楼iceman的帖子

您好,我的问题表达清楚了是吗?
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2014-12-25 16:13:00
8#
回复 7楼liuyinlong的帖子

我想我们沟通有些不顺畅,能否提供你的电话我们详细交流下需求。可以通过论坛短消息发送给我。谢谢
回复 使用道具 举报
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2014-12-29 16:49:00
9#
通过沟通,已经理解需求,接下来我们会继续调查该功能的实现,如有新的进展我们会立即给你提供实现方法。
回复 使用道具 举报
liuyinlong
初级会员   /  发表于:2014-12-29 17:27:00
10#
回复 9楼dof的帖子

谢谢
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部