参数不正确。在 MS.Internal.XcpImports.MethodEx(IntPtr ptr, 字符串名称, CValue[] cvData)

The parameter is incorrect. at MS.Internal.XcpImports.MethodEx(IntPtr ptr, String name, CValue[] cvData)

提问人:Kenny 提问时间:5/7/2012 最后编辑:ie.Kenny 更新时间:12/5/2013 访问量:943

问:

在 Wp7 上,当用户按下页面上的“开始”按钮时,当显示手机键盘并点击设备后退按钮时,应用崩溃,异常为:-

The parameter is incorrect. 
   at MS.Internal.XcpImports.MethodEx(IntPtr ptr, String name, CValue[] cvData)
   at MS.Internal.XcpImports.MethodPack(IntPtr objectPtr, String methodName, Object[] rawData)
   at MS.Internal.XcpImports.UIElement_TransformToVisual(UIElement element, UIElement visual)
   at System.Windows.Controls.SipHelper.AdjustFrame(FrameworkElement element, Double bottomMargin, Double& stillObscured)
   at System.Windows.Controls.SipHelper.SelectionChanged(Object sender, RoutedEventArgs e)
   at MS.Internal.CoreInvokeHandler.InvokeEventHandler(Int32 typeIndex, Delegate handlerDelegate, Object sender, Object args)
   at MS.Internal.JoltHelper.FireEvent(IntPtr unmanagedObj, IntPtr unmanagedObjArgs, Int32 argsTypeIndex, Int32 actualArgsTypeIndex, String eventName)

我无法理解异常是从何处生成的。

谢谢 金谷

Windows-Phone-7 异常 返回

评论

0赞 Kevin Gosse 5/8/2012
我无法重现该问题。显示键盘是因为哪个控件,一个文本框?如果创建一个空项目并仅放置该控件,是否仍有问题?
0赞 Kenny 5/8/2012
不,它没有。我试图遵循同样的事情。此外,我还尝试一次对页面上的控件进行注释并进行了测试。它工作正常。但是当显示整个页面时,我再次面临同样的问题。通过互联网搜索,我找到了各种解决方案,例如将列表框更改为 itemscontol、删除 textchanged 等,尝试了所有方法,但仍然有例外。需要挖掘更多。
2赞 Kevin Gosse 5/8/2012
如果您设法将有该问题的项目上传到某个地方,我很乐意提供帮助。否则,不幸的是,我无能为力。你在某个地方搞砸了RootFrame吗?(通常App.xaml.cs)。如果是这样,请尝试删除这些行。

答:

0赞 Rahul 12/5/2013 #1

发生这种情况是因为您在页面布局中两次添加控件或将任何对象添加到其父级两次。检查 OnNavigatedTO 方法中的代码,当您返回页面时,OnNavigatedTo 将再次执行,因此,如果您要在 OnNavigatedTo 方法中将任何对象添加到其父对象,则应从 OnNavigatedFrom 函数中的父对象中删除该对象