?
Solved

How to access a Win Form from a module/Class

Posted on 2006-11-15
15
Medium Priority
?
271 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 47

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
Independent Software Vendors: 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!

 

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 63

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 63

Expert Comment

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

Featured Post

Free Tool: SSL Checker

Scans your site and returns information about your SSL implementation and certificate. Helpful for debugging and validating your SSL configuration.

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

Introduction When many people think of the WebBrowser (http://msdn.microsoft.com/en-us/library/2te2y1x6%28v=VS.85%29.aspx) control, they immediately think of a control which allows the viewing and navigation of web pages. While this is true, it's a…
Calculating holidays and working days is a function that is often needed yet it is not one found within the Framework. This article presents one approach to building a working-day calculator for use in .NET.
In this brief tutorial Pawel from AdRem Software explains how you can quickly find out which services are running on your network, or what are the IP addresses of servers responsible for each service. Software used is freeware NetCrunch Tools (https…
In this video, Percona Director of Solution Engineering Jon Tobin discusses the function and features of Percona Server for MongoDB. How Percona can help Percona can help you determine if Percona Server for MongoDB is the right solution for …
Suggested Courses
Course of the Month13 days, 15 hours left to enroll

800 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