 悬赏园豆:100
                [已关闭问题] 
            
                    关闭于 2015-02-13 17:19
                悬赏园豆:100
                [已关闭问题] 
            
                    关闭于 2015-02-13 17:19
                 
        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);
 }