Want to win a PS4? Go Premium and enter to win our High-Tech Treats giveaway. Enter to Win

x
?
Solved

How to access a Win Form from a module/Class

Posted on 2006-11-15
15
Medium Priority
?
278 Views
Last Modified: 2010-04-23
I would like accees a FORM from module
So that i could access controls  of the FORM.

In the early vb 6.0 it could be done by
form2=form

........
Can any one help me on the issue.

0
Comment
Question by:muntasirrahman
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 6
  • 4
  • 2
  • +2
15 Comments
 
LVL 48

Expert Comment

by:Wayne Taylor (webtubbs)
ID: 17946310
Try something like this....

    Dim frm As New Form1
    frm.Label1.Text = "Something"

....where Form1 is the name of the form you want

Regards

Wayne
0
 

Author Comment

by:muntasirrahman
ID: 17946343
But it does not get my original form's control property

messagebox does not show "muntasir"

ie:

    Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        TextBox1.Text = "muntasir"
        TEst()
    End Sub

------------------------- in the module
Imports System.Data.SqlClient
Module C10
    Public mForm1 As New Form2

    Public Sub TEst()
        ' mForm1.Owner = Form2.ActiveForm
        ' MessageBox.Show(mForm1.TextBox1.Text())

        'mForm1.TextBox1.Text = "xp"

        MessageBox.Show(mForm1.TextBox1.Text())
    End Sub
0
 
LVL 13

Expert Comment

by:newyuppie
ID: 17946348
if you want to access an already displayed form rather than a new one, use this code:

dim frm as form1 = directcast(frm, form1)
frm.label1.text = "something"

if you are unsure if your form1 has been initialized you could modify my code to read:
dim frm as form1 = trycast(frm,form1)
if (frm isnot nothing)
  from.label1.text = "something"
end if

NY
0
Concerto's Cloud Advisory Services

Want to avoid the missteps to gaining all the benefits of the cloud? Learn more about the different assessment options from our Cloud Advisory team.

 

Author Comment

by:muntasirrahman
ID: 17946383
Following Error Occurd:
An unhandled exception of type 'System.NullReferenceException' occurred in WindowsApplication1.exe

Additional information: Object reference not set to an instance of an object.
0
 
LVL 13

Expert Comment

by:newyuppie
ID: 17946409
of course you are replacing what reads "form1" for the actual name in your project? (Form2 i believe?)
0
 

Author Comment

by:muntasirrahman
ID: 17946452
---    my actual form is Form2 then

  Dim frm As Form2 = DirectCast(frm, Form2)
        MessageBox.Show(frm.TextBox1.Text)
0
 
LVL 35

Expert Comment

by:YZlat
ID: 17946492
for that purpose your original win form has to be public
0
 
LVL 35

Expert Comment

by:YZlat
ID: 17946494
Public Class Form1
    Inherits System.Windows.Forms.Form
0
 

Author Comment

by:muntasirrahman
ID: 17946531
it is as below:
Public Class Form2
    Inherits System.Windows.Forms.Form



Few months ago i seen a code some thing like:

mForm1 = Form2.ActiveForm.ParentForm.OwnedForms.CreateInstance
0
 
LVL 13

Expert Comment

by:newyuppie
ID: 17946547
<<mForm1 = Form2.ActiveForm.ParentForm.OwnedForms.CreateInstance>>
that cant be good coding
0
 

Author Comment

by:muntasirrahman
ID: 17946556
Now that one not working.... i forgot what was it actually.....
0
 
LVL 13

Expert Comment

by:newyuppie
ID: 17946558
<<Module C10>> at the top of your class, what is that? can you change it to "Public Class C10"? end it with End Class instead of End Module.
0
 
LVL 64

Accepted Solution

by:
Fernando Soto earned 280 total points
ID: 17947265
Hi muntasirrahman;

I used your original code posted in the question with two changes. This should do what you want.

    Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        mForm1 = Me                     ' Add this line
        TextBox1.Text = "muntasir"
        TEst()
    End Sub

------------------------- in the module
Imports System.Data.SqlClient
Module C10

    Public mForm1 As Form2              ' Change this line to this

    Public Sub TEst()
        ' mForm1.Owner = Form2.ActiveForm
        ' MessageBox.Show(mForm1.TextBox1.Text())

        'mForm1.TextBox1.Text = "xp"

        MessageBox.Show(mForm1.TextBox1.Text())
    End Sub


Fernando
0
 

Author Comment

by:muntasirrahman
ID: 17953378
Thanks newyuppie  and FernandoSoto ......
Boss "FernandoSoto" It is now Working ....
0
 
LVL 64

Expert Comment

by:Fernando Soto
ID: 17955986
Glad I was able to help. ;=)
0

Featured Post

Industry Leaders: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Question has a verified solution.

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

Well, all of us have seen the multiple EXCEL.EXE's in task manager that won't die even if you call the .close, .dispose methods. Try this method to kill any excels in memory. You can copy the kill function to create a check function and replace the …
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…
This course is ideal for IT System Administrators working with VMware vSphere and its associated products in their company infrastructure. This course teaches you how to install and maintain this virtualization technology to store data, prevent vuln…
We’ve all felt that sense of false security before—locking down external access to a database or component and feeling like we’ve done all we need to do to secure company data. But that feeling is fleeting. Attacks these days can happen in many w…
Suggested Courses

636 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