Solved

VB.Net calling Visual Basic 6

Posted on 2007-04-03
9
205 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 63

Expert Comment

by:Fernando Soto
ID: 18847248
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
ID: 18847288
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 63

Expert Comment

by:Fernando Soto
ID: 18847308
What version of VB .Net are you using 2003 or 2005?
0
How Do You Stack Up Against Your Peers?

With today’s modern enterprise so dependent on digital infrastructures, the impact of major incidents has increased dramatically. Grab the report now to gain insight into how your organization ranks against your peers and learn best-in-class strategies to resolve incidents.

 

Author Comment

by:da4thrza
ID: 18847325
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
 
LVL 63

Expert Comment

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

Author Comment

by:da4thrza
ID: 18847360
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 63

Accepted Solution

by:
Fernando Soto earned 125 total points
ID: 18847463
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
ID: 18847490
Thanks a lot Fernando!
0
 
LVL 63

Expert Comment

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

Featured Post

Free Tool: IP Lookup

Get more info about an IP address or domain name, such as organization, abuse contacts and geolocation.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
Generate Numbers in JQuery file 11 66
run a stored procedure from vb.net 1 27
Get month and date in a format 4 31
How can I do Unit Testing with Session ? 1 9
It’s quite interesting for me as I worked with Excel using vb.net for some time. Here are some topics which I know want to share with others whom this might help. First of all if you are working with Excel then you need to Download the Following …
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…
Established in 1997, Technology Architects has become one of the most reputable technology solutions companies in the country. TA have been providing businesses with cost effective state-of-the-art solutions and unparalleled service that is designed…
Nobody understands Phishing better than an anti-spam company. That’s why we are providing Phishing Awareness Training to our customers. According to a report by Verizon, only 3% of targeted users report malicious emails to management. With compan…

840 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