首页 新闻 赞助 找找看

关于LookUpEdit的得到焦点弹出下拉窗体和直接回车取值问题

0
悬赏园豆:100 [已关闭问题] 关闭于 2015-02-13 17:19

1、请问大神们,怎么样在LookUpEdit得到焦点的时候就可以弹出下拉窗体,而不需要输入值或用鼠标点击下拉箭头弹出下拉窗体,并且我试过在其Enter事件中写入ShowPopup,如果是窗口刚
      打开时下拉是可以弹出,但我如果用代码跳转过去的话,就会出现下拉窗体闪现一下就关闭
2、怎么样从下拉检索出我要的数据后,如果当前数据是第一行的话,直接敲回车数据就会将第一条记录的值赋值到输入框,而不用再通过上下移动后再敲回车,谢谢

关于LookUpEdit的得到焦点弹出下拉窗体和直接回车取值问题

冥月的主页 冥月 | 初学一级 | 园豆:109
提问于:2015-02-11 15:46
< >
分享
所有回答(3)
0

这个也是用户被娇惯到一个程度后出现的产物,对于这样的变态需求,

我一向的态度是,可以做到,不过需要增加30万研发经费/开发成本,

请问上帝您付现金还是刷卡?

爱编程的大叔 | 园豆:30839 (高人七级) | 2015-02-11 15:54
0

不用Devxxx。
1.是不是可以用过OnFocus事件控制?

2.是不是可以通过按键事件判断回车?取第一行数据赋值?

 

如果都不行那就只能自己重写了。

xiaocong_soft | 园豆:556 (小虾三级) | 2015-02-12 09:46
0

关于回车事件可以录入数据这个问题可以处理,而第一个暂未找到合适的答案

 

private DataView ConvertDataSource(GridView view)
{
if (view != null && view.DataSource != null && view.RowCount > 0)
{
if (view.DataSource is DataTable)
{
return ((DataTable)view.DataSource).DefaultView;
}
else if (view.DataSource is DataView)
{
return (DataView)view.DataSource;
}
return null;
}

return null;
}

private void SetValueWhenEnterKey(GridView view, string rowFilter)
{
DataView dataSource = ConvertDataSource(view);

if (dataSource != null && rowFilter != "")
{
dataSource.RowFilter = rowFilter;

if (dataSource.Count > 0)
{
this.EditValue = dataSource[0][this.Properties.ValueMember];
}
}
}

protected override void OnKeyUp(System.Windows.Forms.KeyEventArgs e)
{
if (e.KeyCode == System.Windows.Forms.Keys.Enter)
{
if (this.Properties.View.FocusedRowHandle == 0)
SetValueWhenEnterKey(this.Properties.View, ((CustomGridView)this.Properties.View).GetExtraFilter);

if (SendToNextByEnterKey)
{
e.Handled = true;
System.Windows.Forms.SendKeys.Send("{Tab}");
}
}

base.OnKeyUp(e);
}

冥月 | 园豆:109 (初学一级) | 2015-02-13 17:18
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册