.NET Tutorials, Forums, Interview Questions And Answers
Welcome :Guest
Sign In
Register
 
Win Surprise Gifts!!!
Congratulations!!!


Post New Web Links

Cross-Thread Exception at a WinForms control hosted by the WindowsFormsHost in WPF

Posted By:      Posted Date: September 23, 2010    Points: 0   Category :WPF
 

Hi,

I have a WPF Application and inside hosted existing WinForms controls.

In WPF i'm using the 'Dispatcher' with the 'CheckAccess' method to check if invoke is required, in my old WinForms controls i use 'InvokeRequired'.

The problem is, that if one of the WinForms controls gets created but not yet shown (drawn) and the application gets to the line, where it has to invoke, the InvokeRequired property returns 'false' even the code is not running under the Main Thread and so it resumes in a Cross-Thread exception.

The strange thing is, that it works fine, when the control gets visible (drawn) before changing it (in my case by switching to the specific tabpage).

 

For me it seems as if the 'InvokeRequired' property doesn't work reliable when the WinForms control gets hostet by WPF.

 

It would be great, if someone has experience with this issue and could help me!

 

Thanx,

Jakob

 




View Complete Post


More Related Resource Links

How to Solve Cross-thread operation not valid: Control " accessed from a thread other than the threa

  
I have a thread... like Dim a As new Threading.Thread(Address Of generate) Dim WithEvents lst As New ListBox()   Form_Load() Me.Controls.Add(lst) lst.SetBounds(100,100,150,80) End Sub   Button1_Click() a.Start() End Sub   Sub generate() Dim i As Integer For i = 1 To 10 lst.Items.Add(i) Next End Sub   When i run this program it results in the above mentioned Exception - Cross-thread operation not valid: Control " accessed from a thread other than the thread it was created on." What is this actually? Why it has been thrown..? Kinda help me please..... Thanx in advance

InvalidCastException when calling JavaScript from C# control using a second thread.

  
Original Issue: I need to be able to call functions in the JavaScript of an HTML page (not ASP.NET) from a C# object embedded in that page.  The c# object has to be .NET 2 level. So I created a C# DLL assembly in VS 2010 which contains a class called NoUIControlClass. set the target framework to .NET 2.0 and made sure to check "Make assembly COM-Visible".  I also signed the assembly so it would have a strong name so I could install it in the GAC.  So far so good. Here is the batch file I run after the project is built to register the control and place it into the GAC: copy "C:\Users\x\Documents\Visual Studio 2010\Projects\NoUIControl\NoUIControl\bin\Debug\NoUIControl.dll" C:\Exploration\NoUIControl C:\Windows\Microsoft.NET\Framework\v4.0.30319\regasm NoUIControl.dll /unregister C:\Windows\Microsoft.NET\Framework\v4.0.30319\regasm NoUIControl.dll NoUIControl.dll C:\"Program Files (x86)"\"Microsoft SDKs"\Windows\v7.0A\Bin\gacutil.exe /u NoUIControl.dll C:\"Program Files (x86)"\"Microsoft SDKs"\Windows\v7.0A\Bin\gacutil.exe /i NoUIControl.dll This works and all is good.  Next I've turned the security level in IE all the way down for intranet and trusted sites.  Just to make sure that doesn't get in the way.  Here is the HTML file I serve from the web server. <html> <head

WF Service and Silverlight Cross domain exception

  
Hi I have created a workflow service (xamlx) and hosted it on IIS. The web.config file of the service is: <?xml version="1.0" encoding="utf-8" ?> <configuration> <system.web> <compilation debug="true" targetFramework="4.0" /> </system.web> <system.serviceModel> <services> <service name="VacationRequestService"> <endpoint contract="IVacationEntry" binding="wsHttpBinding"/> </service> </services> <behaviors> <serviceBehaviors> <behavior> <!-- To avoid disclosing metadata information, set the value below to false and remove the metadata endpoint above before deployment --> <serviceMetadata httpGetEnabled="true"/> <!-- To receive exception details in faults for debugging purposes, set the value below to true. Set to false before deployment to avoid disclosing exception information --> <serviceDebug includeExceptionDetailInFaults="false"/> </behavior> </serviceBehaviors> </behaviors> <serviceHostingEnvironment multipleSiteBindingsEnabled="true" aspNetCompatibilityEnabled="true" /> </system.serviceModel> <system.webServer> <modules runAllManagedModulesForAllRequests

Blob Cache Event ID 7888 Runtime Exception Thread was being aborted

  
HI, We have 3WFE and we are getting error Events 788 and 5538 on all three servers at same time. Any thoughts on what is causing this error? Event Type: Error Event Source: Office SharePoint Server Event Category: Office Server General Event ID: 7888 Date:  9/14/2010 Time:  2:31:08 PM User:  N/A Computer: MOSS2007A Description: A runtime exception was detected. Details follow. Message: Thread was being aborted. Techinal Details: System.Threading.ThreadAbortException: Thread was being aborted.    at System.Threading.ReaderWriterLock.AcquireWriterLockInternal(Int32 millisecondsTimeout)    at Microsoft.SharePoint.Publishing.BlobCache.<>c__DisplayClass14.<>c__DisplayClass17.<FetchItemFromWss>b__11()    at Microsoft.Office.Server.Diagnostics.FirstChanceHandler.ExceptionFilter(Boolean fRethrowException, TryBlock tryBlock, FilterBlock filter, CatchBlock catchBlock, FinallyBlock finallyBlock) For more information, see Help and Support Center at http://go.microsoft.com/fwlink/events.asp.   Event Type: Error Event Source: Office SharePoint Server Event Category: Publishing Cache Event ID: 5538 Date:  9/14/2010 Time:  2:31:08 PM User:  N/A Computer: MOSS2007A Description: An error occured in the blob cache.  The ex

Bind control to results from thread

  
Hello,  I can't find best practice to my issue, I will appreciate any help from you – Please let me know what you think about it:  My application request data by threads. Each thread have those events: OnStarting – Fires just before the thread start its job. OnFound – Can be fire more than one for each thread. The result from thread can be received here OnFinish - Fires just after the job finish.  The scenario is something like that: Let's say I have WinForm contains RadioButton for "Search Type" and Button for "Start Search". The user choose the search type and press on "Start Search". According the search type the form knows to place new control like Grid or TextBox on the form. The result from thread (The thread do the searching job) should display in the appropriate control which opened for this specific search.  My question: What is the best practice to bind control to the result from thread ?   Options: 1.     Save Key=Value list for Thread=Control 2.     Create MyGrid / MyTextBox with even OnFill. The application will use OnFill as callback in the threads. 3.     Any other suggestion will be very welcome.   Thanks in advance !

Get Control that triggered cross page postback

  
Hi I want to know if there is a way to get the control that triggered the postback,such as I have one page Page1.aspx with two buttons like<asp:Button id="btnCrossPost" runat="server" Text="Post To Another Page" PostBackUrl="Page2.aspx" CommandArgument="1"/><asp:Button id="btnCrossPost2" runat="server" Text="Post To Another Page 2" PostBackUrl="Page2.aspx" CommandArgument="2"/>and in Page2.aspx I want to get which button triggered the post back so that I can get the command argument which is vitalto the processing of the next page.Thanks.

Display a Web User Control in the Web Browser control of WinForms

  
Does anyone have an example of how to do this, or can you point me to a good tutorial that explains how to do this? Thanks

Select multiple controls on tabpage, Drag & Drop control(s) (WinForms)

  

I'm wondering, if somebody got some code or thoughts for selecting multiple control displayed on tab page and drag & drop control on tab page it self. Something like on windows desktop, where you can draw a rectangel with mouse cursor to select folder and files. Also, drag folder or files to different location.

Thanks.

 


cross thread problem

  

Hi,

Im using vs 2010 to try and make an application. It uses multi threading and im trying to change a label on my main form from within the threads but im getting this error : Cross-thread operation not valid: Control 'log' accessed from a thread other than the thread it was created on.

Ive read lots of articles on the web about delegates etc but its too confusing for me :(

Can anyone explain it to me please in newbie language ?

Thanks in advance.

Scott.


Unhandled exception in XAML editor from control that accesses database. - "System.Data.SqlServerCe.S

  

Hello,

Im having a bit of difficulty with some WPF/C#/SQL Server CE code.

I have a WPF User Control with the following line of code in the constructor:

MyDatabase database = new
 MyDatabase("Data Source=|DataDirectory|\\MyDatabase.sdf"
 );

where MyDatabase is a class generated using SQLMetal.exe from MyDatabase.sdf.

 

When I added this control to other controls, the application runs fine and I'm able to access my database. When I try to edit these parent controls,  the XAML editor throws the following error:

 

>System.Data.SqlServerCe.SqlCeException
>The database file cannot be found. Check the path to the database. [ Data Source = D:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE\MyDatabase.sdf ]

 

Why does the XAML editor redirect my DataDirectory to "D:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE\" and why does the XAML editor execute my database access code?

 

How can I fix this so I can use this control in a XAML editor?

Thanks,

Greg S.

 


Unhandled exception in XAML editor from control that accesses database. - "System.Data.SqlServerCe.S

  

Hello,

Im having a bit of difficulty with some WPF/C#/SQL Server CE code.

I have a WPF User Control with the following line of code in the constructor:

MyDatabase database = new
 MyDatabase("Data Source=|DataDirectory|\\MyDatabase.sdf"
 );

where MyDatabase is a class generated using SQLMetal.exe from MyDatabase.sdf.

 

When I added this control to other controls, the application runs fine and I'm able to access my database. When I try to edit these parent controls,  the XAML editor throws the following error:

 

>System.Data.SqlServerCe.SqlCeException
>The database file cannot be found. Check the path to the database. [ Data Source = D:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE\MyDatabase.sdf ]

 

Why does the XAML editor redirect my DataDirectory to "D:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE\" and why does the XAML editor execute my database access code?

 

How can I fix this so I can use this control in a XAML editor?

Thanks,

Greg S.

 


how do you refere in xaml to a control hosted inside a userdefinedcontrol

  

hello

 

I have my userdefinecontol

 

<Window1:MyUserControl    Margin="5,0,0,0"     MinWidth="10"
          Background="Transparent" >
          
          </Window1:MyUserControl>

 

I want to change some property of a control hosted inside the MyUserControl control 

 

how can I do this in xaml?


how to expose a dependecypeoperty of a control hosted inside anther one in a user defined control

  

Hello

 

I have a user defined control.

It inherit from grid and it has many controls in it and one of it is a textblock

 

I what to expose the dependecyproperty of the textbox how can I do this

 

 

I mean i want to do something like

 

 

dim MyControl as mycontrol

mycontrol.fontfamily    wher the fontfamily is actually   mycontrol.innertextblock.fontfamily

 

 


User Control Web Part - The type initializer for 'IBM.Data.DB2.DB2Connection' threw an exception.

  

Hello,

I need help, in our SharePoint 2007 project we have created Web Part using VS 2005 & .Net 2.0, User Control. In the user control for one of the drop down list box databinding method we are using data from IBM DB2. It works fine on our local machine, but after Web Part deployment if i open the page then the Drop Down List is empty. I checked the log in the event viewer. I found the following error message in the vent viewer -

The type initializer for 'IBM.Data.DB2.DB2Connection' threw an exception.

 

Detail Error Message -

An unhandled exception occurred and the process was terminated.

Application ID: /LM/W3SVC/2076212728/Root

Process ID: 26880

Exception: System.TypeInitializationException

Message: The type initializer for 'IBM.Data.DB2.DB2Connection' threw an exception.

StackTrace: at IBM.Data.DB2.DB2Connection.Finalize()

InnerException: System.InvalidOperationException

Message: SQL1159 Initialization error with DB2 .NET Data Provider, reason code 7, tokens 9.1.1.DEF.2, SOFTWARE\IBM\DB2\InstalledCopies

StackTrace: at IBM.Data.DB2.y.f.a()

at IBM.Data.DB2.DB2ConnPool.g()

at IBM.Data.DB2.DB2ConnPool..ctor()

at IBM.Data.DB2.DB2Connection..cctor()

For more information, see Help and Support Center at h

.Net 4.0 Winform Control hosted in IE

  

We have an application that utilizes winform controls hosted in IE8+. In .Net 3.5 and before this worked great. We migrated our application to 4.0 and the exact same code will not function in IE. It compiles just fine and runs outside of IE. If I set our target framework back to 3.5 we have no problems. When we set it to 4.0 it just doesn't work.

I will say that we are gathering information from the system regarding printers.

 

Thanks


Is Dispatcher.BeginInvoke really NOT thread safe, while the old System.Windows.Forms.Control.BeginIn

  

Hello.

 

System.Windows.Forms.Control.BeginInvoke is documented as thread safe (in fact, BeginInvoke , EndInvoke , Invoke , InvokeRequired , and CreateGraphics are).

Great!

 

But in WPF, Dispatcher.BeginInvoke is not documented as thread safe. Which would appear to me as a regression (and not really convenient, to be honest).

Was it only forgotten in MSDN documentation, or should I really use external locking to prevent the dispatcher to get lost in its messages and priorities?

 

 

Thanks. ;)


A User Control which contains a WPF Control hosted in ElementHost can not SHIFT+TAB back (but can TA

  
For some reason, user controls which are built out of WPF hosted controls, seem to be unable to SHIRT+TAB back out of the control on the form.  One can TAB forward to the next user control without issue, however, unless you wish to cycle the form, there is no way to go back.  To see this in action, create the following single user control:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
    public partial class TextForFun : UserControl
    {
        System.Windows.Controls.TextBox wpfTextBox1 = new System.Windows.Controls.TextBox();
        MyElementHost myhost = new MyElementHost();

        public TextForFun(int point)
        {
            InitializeComponent();

            myhost.Location = new Point(0, 0);
            myhost.Size = new Size(50, 50);
Categories: 
ASP.NetWindows Application  .NET Framework  C#  VB.Net  ADO.Net  
Sql Server  SharePoint  Silverlight  Others  All   

Hall of Fame    Twitter   Terms of Service    Privacy Policy    Contact Us    Archives   Tell A Friend