• Datawindow.net 子数据窗口出错


    devexpress通过标签页面打开用户控件,数据窗口嵌入用户控件中。当点击数据窗口含下拉数据窗口字段时出现如下错误:

    未处理 System.NullReferenceException

    Message="未将对象引用设置到对象的实例。"
    Source="DataWindowInterop"
    StackTrace:
    在 DataWindowInterop.DW_Events.CatchNotify(Int32 given_HWND, UInt32 Message, UInt32 wParam, Int32 lParam, Void* VM_Object)
    在 System.Windows.Forms.UnsafeNativeMethods.CallWindowProc(IntPtr wndProc, IntPtr hWnd, Int32 msg, IntPtr wParam, IntPtr lParam)
    在 System.Windows.Forms.NativeWindow.DefWndProc(Message& m)
    在 System.Windows.Forms.Control.DefWndProc(Message& m)
    在 System.Windows.Forms.Control.WmMouseDown(Message& m, MouseButtons button, Int32 clicks)
    在 System.Windows.Forms.Control.WndProc(Message& m)
    在 Sybase.DataWindow.DataWindowControl.WndProc(Message& msg)

    分析可能原因:

    (1) 可能是子数据窗口找不到窗口句柄导致出错。

    (2) 数据窗口taborder第一个的字段带有子数据窗口。

    解决方法:继承Sybase.DataWindow.DataWindowControl,覆盖重写WndProc并捕捉异常,让错误不再传递到数据窗口控件外层。

    补充:

    经过多次不断测试及代码排查终于发现问题所在:

    原来是数据窗口的ItemFocusChanged引发的System.NullReferenceException异常。

    private void dwCard_ItemFocusChanged(object sender, ItemFocusChangedEventArgs e)
    {
    string colname = e.ColumnName.ToUpper();

    dwCard.CurrentEdit.SelectText(0, (short)(dwCard.CurrentEdit.TextLength)); //选择已有的数据

    }

    如果第一个字段是带下拉数据窗口就会出现如下异常:

    dwCard.CurrentEdit.TextLength = “dwCard.CurrentEdit.TextLength”引发了“System.NullReferenceException”类型的异常

  • 相关阅读:
    [HDU] 2084 数塔 入门dp
    一些实用的小技术,不定时更新^_^
    上传图片的综合验证
    一个典型web接口处理
    js控制背景音乐播放
    心开始平和起来
    冲突域广播域
    可怜的我的啊~~
    祈祷
    昨夜小楼又东风...
  • 原文地址:https://www.cnblogs.com/janehlp/p/4927715.html
Copyright © 2020-2023  润新知