1、请问大神们,怎么样在LookUpEdit得到焦点的时候就可以弹出下拉窗体,而不需要输入值或用鼠标点击下拉箭头弹出下拉窗体,并且我试过在其Enter事件中写入ShowPopup,如果是窗口刚
打开时下拉是可以弹出,但我如果用代码跳转过去的话,就会出现下拉窗体闪现一下就关闭
2、怎么样从下拉检索出我要的数据后,如果当前数据是第一行的话,直接敲回车数据就会将第一条记录的值赋值到输入框,而不用再通过上下移动后再敲回车,谢谢
关于LookUpEdit的得到焦点弹出下拉窗体和直接回车取值问题
这个也是用户被娇惯到一个程度后出现的产物,对于这样的变态需求,
我一向的态度是,可以做到,不过需要增加30万研发经费/开发成本,
请问上帝您付现金还是刷卡?
不用Devxxx。
1.是不是可以用过OnFocus事件控制?
2.是不是可以通过按键事件判断回车?取第一行数据赋值?
如果都不行那就只能自己重写了。
关于回车事件可以录入数据这个问题可以处理,而第一个暂未找到合适的答案
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);
}