System.InvalidOperationException HResult=0x80131509 Message=指定的元素已经是另一个元素的逻辑子元素。请先将其断开连接。 Source=PresentationFramework StackTrace: 在 System.Windows.FrameworkElement.ChangeLogicalParent(DependencyObject newParent) 在 System.Windows.FrameworkContentElement.AddLogicalChild(Object child) 在 System.Windows.LogicalTreeHelper.AddLogicalChild(DependencyObject parent, Object child) 在 System.Windows.Documents.TextContainer.InsertEmbeddedObjectInternal(TextPointer position, DependencyObject embeddedObject) 在 System.Windows.Documents.TextPointer.InsertUIElement(UIElement uiElement) 在 System.Windows.Documents.BlockUIContainer.set_Child(UIElement value) 在 System.Windows.Documents.BlockUIContainer..ctor(UIElement uiElement) 在 MdPass.UI.DrugGudiesForm.Print_Click(Object sender, MouseButtonEventArgs e) 在 D:\vs_work_space\kehuduan\MdPass\UI\DrugGudiesForm.xaml.cs 中: 第 313 行 在 System.Windows.Input.MouseButtonEventArgs.InvokeEventHandler(Delegate genericHandler, Object genericTarget) 在 System.Windows.RoutedEventArgs.InvokeHandler(Delegate handler, Object target) 在 System.Windows.RoutedEventHandlerInfo.InvokeHandler(Object target, RoutedEventArgs routedEventArgs) 在 System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised) 在 System.Windows.UIElement.ReRaiseEventAs(DependencyObject sender, RoutedEventArgs args, RoutedEvent newEvent) 在 System.Windows.UIElement.OnMouseDownThunk(Object sender, MouseButtonEventArgs e) 在 System.Windows.Input.MouseButtonEventArgs.InvokeEventHandler(Delegate genericHandler, Object genericTarget) 在 System.Windows.RoutedEventArgs.InvokeHandler(Delegate handler, Object target) 在 System.Windows.RoutedEventHandlerInfo.InvokeHandler(Object target, RoutedEventArgs routedEventArgs) 在 System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised) 在 System.Windows.UIElement.RaiseEventImpl(DependencyObject sender, RoutedEventArgs args) 在 System.Windows.UIElement.RaiseTrustedEvent(RoutedEventArgs args) 在 System.Windows.UIElement.RaiseEvent(RoutedEventArgs args, Boolean trusted) 在 System.Windows.Input.InputManager.ProcessStagingArea() 在 System.Windows.Input.InputManager.ProcessInput(InputEventArgs input) 在 System.Windows.Input.InputProviderSite.ReportInput(InputReport inputReport) 在 System.Windows.Interop.HwndMouseInputProvider.ReportInput(IntPtr hwnd, InputMode mode, Int32 timestamp, RawMouseActions actions, Int32 x, Int32 y, Int32 wheel) 在 System.Windows.Interop.HwndMouseInputProvider.FilterMessage(IntPtr hwnd, WindowMessage msg, IntPtr wParam, IntPtr lParam, Boolean& handled) 在 System.Windows.Interop.HwndSource.InputFilterMessage(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled) 在 MS.Win32.HwndWrapper.WndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled) 在 MS.Win32.HwndSubclass.DispatcherCallbackOperation(Object o) 在 System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs) 在 System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler) 在 System.Windows.Threading.Dispatcher.LegacyInvokeImpl(DispatcherPriority priority, TimeSpan timeout, Delegate method, Object args, Int32 numArgs) 在 MS.Win32.HwndSubclass.SubclassWndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam) 在 MS.Win32.UnsafeNativeMethods.DispatchMessage(MSG& msg) 在 System.Windows.Threading.Dispatcher.PushFrameImpl(DispatcherFrame frame) 在 System.Windows.Threading.Dispatcher.PushFrame(DispatcherFrame frame) 在 System.Windows.Window.ShowHelper(Object booleanBox) 在 System.Windows.Window.Show() 在 System.Windows.Window.ShowDialog() 此异常最初是在此调用堆栈中引发的: [外部代码] MdPass.UI.DrugGudiesForm.Print_Click(object, System.Windows.Input.MouseButtonEventArgs) (位于 DrugGudiesForm.xaml.cs 中) [外部代码]
时间: 2024-04-18 18:30:47 浏览: 206
这个异常通常是由于元素已经被添加到了一个逻辑子元素的情况下再次添加到另一个逻辑子元素中导致的。根据调用堆栈信息,异常发生在`DrugGudiesForm.xaml.cs`文件中的`Print_Click`方法的第313行。
要解决这个问题,你可以尝试以下几个步骤:
1. 确保在调用`BlockUIContainer`构造函数之前,没有将其作为子元素添加到其他元素中。
2. 如果你已经将`BlockUIContainer`添加到某个元素中,请先将其从该元素中移除,然后再将其添加到另一个元素中。
如果仍然无法解决问题,请尝试提供更多的代码或上下文信息,以便更好地理解问题并提供帮助。
相关问题
System.InvalidOperationException HResult=0x80131509 Message=ExecuteReader: Connection 属性尚未初始化。 Source=<无法计算异常源> StackTrace: <无法计算异常堆栈跟踪>
这个异常通常是因为在执行数据库查询时没有初始化连接对象。请确保在执行查询之前,连接对象已经被正确地实例化并打开了连接。可以尝试使用以下代码初始化连接对象:
```csharp
using (SqlConnection connection = new SqlConnection(connectionString))
{
SqlCommand command = new SqlCommand(queryString, connection);
connection.Open();
SqlDataReader reader = command.ExecuteReader();
// 处理查询结果
}
```
其中,`connectionString` 是连接字符串,`queryString` 是查询语句。请根据具体情况修改上述代码。
System.InvalidOperationException HResult=0x80131509 Message=对象当前正在其他地方使用。 Source=System.Drawing StackTrace: at System.Drawing.Image.get_Width() at System.Drawing.Image.get_Size() at System.Windows.Forms.PictureBox.ImageRectangleFromSizeMode(PictureBoxSizeMode mode) at System.Windows.Forms.PictureBox.OnPaint(PaintEventArgs pe) at System.Windows.Forms.Control.PaintWithErrorHandling(PaintEventArgs e, Int16 layer) at System.Windows.Forms.Control.WmPaint(Message& m) at System.Windows.Forms.Control.WndProc(Message& m) at System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam) 此异常最初是在此调用堆栈中引发的: [外部代码]
这个异常是因为在你的代码中,有一个PictureBox` 控件正在尝绘制一个已经被其他地方使用的图像对象。
根据调用堆栈信息,异常发生在 `PictureBox.OnPaint()` 方法中。在绘制 `PictureBox` 控件时,它尝试获取图像的宽度和尺寸信息,但由于该图像对象正在被其他地方使用,因此无法获取正确的信息,从而导致了异常的抛出。
为了解决这个问题,你可以尝试以下方法:
1. 确保在使用完 `PictureBox` 控件之前,释放它所使用的图像对象。可以使用 `Dispose()` 方法来释放图像资源。例如:
```csharp
pictureBox1.Image.Dispose();
```
2. 确保在修改或替换 `PictureBox` 控件的图像之前,先将其设置为 `null`。这样可以确保之前的图像对象被正确释放。例如:
```csharp
pictureBox1.Image = null;
```
3. 确保在多线程环境中对 `PictureBox` 控件进行访问时,使用适当的线程同步机制,以避免多个线程同时修改控件的图像对象。
如果以上方法都无法解决问题,请提供更多有关你的代码和具体操作的信息,我将尽力提供更具体的帮助。
阅读全文