Solved

VB.Net calling Visual Basic 6

Posted on 2007-04-03
9
203 Views
Last Modified: 2013-11-26
I have a VB.net form from which i call a form in a visual basic 6 activeX dll.
.Net requires that i show the visual basic 6 form as modal. This is fine, but when i do this, the vb.net form which called the vb6 form doesnt repaint. So, if the user moves the vb6 form around, the vb.net form underneath looks all screwed up. Does anyone know how to fix this issue?

Thanks
0
Comment
Question by:da4thrza
  • 5
  • 4
9 Comments
 
LVL 62

Expert Comment

by:Fernando Soto
Comment Utility
Hi da4thrza;

You may try to run the VB 6 code in its own thread. This will allow the VB .Net program to respond to paint events. I have not tried this myself but I see no reason why it would not work.

Fernando
0
 

Author Comment

by:da4thrza
Comment Utility
thanks for the response. How do i do that? Is there a way to do that but still call the form as modal?
0
 
LVL 62

Expert Comment

by:Fernando Soto
Comment Utility
What version of VB .Net are you using 2003 or 2005?
0
 

Author Comment

by:da4thrza
Comment Utility
vb.net 2005

i am currently calling the DLL like this:
        Dim oVB6DLL As Object

        oVB6DLL = CreateObject("VB6Project.clsMain")

        Call oVB6DLL.ShowMe()

The show me function calls the main vb6 form as modal

thanks
0
Threat Intelligence Starter Resources

Integrating threat intelligence can be challenging, and not all companies are ready. These resources can help you build awareness and prepare for defense.

 
LVL 62

Expert Comment

by:Fernando Soto
Comment Utility
Are there any interactions between the .Net form and the VB 6 code?
0
 

Author Comment

by:da4thrza
Comment Utility
not really. i just need it to launch given some parameters and for the object to be garbage collected once the user closes out of the vb6 form
0
 
LVL 62

Accepted Solution

by:
Fernando Soto earned 125 total points
Comment Utility
Hi da4thrza;

Try something like this.

    ' Create a variable to hold a thread object
    Private WithEvents BgWorker As New System.ComponentModel.BackgroundWorker

    Private Sub Button1_Click(ByVal sender As System.Object, _
        ByVal e As System.EventArgs) Handles Button1.Click

        ' Start the thread that will run the VB 6 code
        BgWorker.RunWorkerAsync()

    End Sub

    ' This is where the code is placed that will run in its own thread.
    Private Sub BgWorker_DoWork(ByVal sender As Object, _
        ByVal e As System.ComponentModel.DoWorkEventArgs) Handles BgWorker.DoWork

        Dim oVB6DLL As Object

        oVB6DLL = CreateObject("VB6Project.clsMain")

        ' Because this call is a blocking call the thread will not end until the user
        ' closes the VB 6 form.
        Call oVB6DLL.ShowMe()

        ' Make sure to properly dispose of the object before exiting the thread.

    End Sub

Fernando
0
 

Author Comment

by:da4thrza
Comment Utility
Thanks a lot Fernando!
0
 
LVL 62

Expert Comment

by:Fernando Soto
Comment Utility
I am glad it worked out for you. ;=)
0

Featured Post

How to run any project with ease

Manage projects of all sizes how you want. Great for personal to-do lists, project milestones, team priorities and launch plans.
- Combine task lists, docs, spreadsheets, and chat in one
- View and edit from mobile/offline
- Cut down on emails

Join & Write a Comment

Many of us here at EE write code. Many of us write exceptional code; just as many of us write exception-prone code. As we all should know, exceptions are a mechanism for handling errors which are typically out of our control. From database errors, t…
It was really hard time for me to get the understanding of Delegates in C#. I went through many websites and articles but I found them very clumsy. After going through those sites, I noted down the points in a easy way so here I am sharing that unde…
When you create an app prototype with Adobe XD, you can insert system screens -- sharing or Control Center, for example -- with just a few clicks. This video shows you how. You can take the full course on Experts Exchange at http://bit.ly/XDcourse.
This tutorial demonstrates a quick way of adding group price to multiple Magento products.

728 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

13 Experts available now in Live!

Get 1:1 Help Now