Solved

Setting GUI object from another class other than GUI class. How do you do it.

Posted on 2006-06-20
8
202 Views
Last Modified: 2010-04-16
Hi,

I've created an GUI form in C# on .NET (called form1).  I also have another class (class1) with no GUI stuff in it, what I want to do is for a function in Class1 to set a label on form1.
But, Im not sure how you do it?  I've tried to inherit form1 into Class1, but with no luck.  

Would anyone know how I should do it?

Thanks in advance for your help!

 
0
Comment
Question by:malben
[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
  • 4
  • 3
8 Comments
 
LVL 86

Expert Comment

by:Mike Tomlinson
ID: 16946116
Of the MANY ways this could be done...

How about:

    (1) Pass a reference to either Form1 or your Label into your Class so you can directly manipulate them from within the Class

    (2) Make your Class raise a custom event that Form1 subscribes to.  When it receives this event, it uses the parameters to update the appropriate label.

Do you have a preference between these two methods?
0
 

Author Comment

by:malben
ID: 16946424
I'm think passing a reference would be the best option.

I'm new to programming so I wonder if you could help with the syntax i.e. what should I write below?

Thanks for your help

using System;


namespace WindowsApplication1
{

      public class Class1()
      {
            public Class1()
      
            
            }
      }
}
0
 
LVL 96

Accepted Solution

by:
Bob Learned earned 50 total points
ID: 16946724
2003 example:

namespace WindowsApplication1
{

     public class Class1()
     {
         
           public void ShowForm()
           {
               Form1 frm = new Form1();
               frm.Label1.Text = "This is a test";
               frm.ShowDialog();
               frm.Dispose();
          }
     }
}

You would need to set the modifier for the Label to Internal.

Bob

Bob
0
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!

 

Author Comment

by:malben
ID: 16946807
Many thanks bob!

0
 
LVL 86

Expert Comment

by:Mike Tomlinson
ID: 16947029
Is that really what you wanted?

In Bobs example, Class1 is creating a new instance of Form1.

I was thinking that Form1 was creating an instance of Class1 and so we needed to pass a reference to Form1 into Class1 so that the class could manipulate the form...
0
 

Author Comment

by:malben
ID: 16948750
Idle Mind. how would that look like as code?

Thanks
0
 
LVL 86

Expert Comment

by:Mike Tomlinson
ID: 16951209
At it's simplest...         (this assumes that on Form1, the Modifiers() property of textBox1 has been changed to Internal)

    public partial class Form1 : Form
    {

        private void button1_Click_1(object sender, EventArgs e)
        {
            Class1 c1 = new Class1();
            c1.frm1 = this;
            c1.Foo();
        }

    }

    public class Class1
    {
        public Form1 frm1;

        public void Foo()
        {
            if (frm1 != null)
            {
                frm1.textBox1.Text = "Hello from Class1";
            }
        }
    }
0
 

Author Comment

by:malben
ID: 16954181
Many thanks Idle Mind your help was much appreciated!

 
0

Featured Post

[Webinar] Code, Load, and Grow

Managing multiple websites, servers, applications, and security on a daily basis? Join us for a webinar on May 25th to learn how to simplify administration and management of virtual hosts for IT admins, create a secure environment, and deploy code more effectively and frequently.

Question has a verified solution.

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

This article describes a simple method to resize a control at runtime.  It includes ready-to-use source code and a complete sample demonstration application.  We'll also talk about C# Extension Methods. Introduction In one of my applications…
Entity Framework is a powerful tool to help you interact with the DataBase but still doesn't help much when we have a Stored Procedure that returns more than one resultset. The solution takes some of out-of-the-box thinking; read on!
With Secure Portal Encryption, the recipient is sent a link to their email address directing them to the email laundry delivery page. From there, the recipient will be required to enter a user name and password to enter the page. Once the recipient …
How to Install VMware Tools in Red Hat Enterprise Linux 6.4 (RHEL 6.4) Step-by-Step Tutorial

751 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