Solved

c# window title setting from arbitrary panel

Posted on 2010-09-10
7
587 Views
Last Modified: 2013-12-17
Hi Experts,
I'm looking for something like AfxGetMainWnd in c# so that I can set the window title.  I'm in a panel and this panel could be in another panel or in a child window, etc.....  Is there a way to do this in c#?

Thanks!
Mike
0
Comment
Question by:thready
[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
  • 2
  • 2
  • 2
  • +1
7 Comments
 
LVL 12

Expert Comment

by:w00te
ID: 33647720
Application.OpenForms[0].Text = "Hello.";

should always refer to your first opened form, the applicaiton window.  That will change the title to "Hello."

Good luck :)
-w00te
0
 
LVL 63

Accepted Solution

by:
Fernando Soto earned 500 total points
ID: 33647769
Hi thready;

Because Application.OpenForms is a collection of all open forms in the application the first one in the collection may not be the one you want to change. so use this form to get a reference to the correct window.
 
Form openForms = Application.OpenForms["Form Name Goes Here"];

Fernando
0
 
LVL 12

Expert Comment

by:w00te
ID: 33647798
Oh, and just in case for some reason [0] doens't refer to your main form you can use this to change the title based on the type of form (assuming you only have one of your main form open at any time).  If you have multiple of the same form, you can change getType() and typeof() and use Name == "your form name" to explicitly target a specific form you've made by name.  If this were your main form though, its started in your program file and allocated without a name, you would have to save the name or explicitly name it and pass it in to use the name method.

I think the first post will cover the problem though :)

-w00te
for (int i = 0; i < Application.OpenForms.Count; ++i)
            {
                if (Application.OpenForms[i].GetType() == typeof(Form1))
                {
                    Application.OpenForms[i].Text = "Hello.";
                    break;
                }
            }

Open in new window

0
MS Dynamics Made Instantly Simpler

Make Your Microsoft Dynamics Investment Count  & Drastically Decrease Training Time by Providing Intuitive Step-By-Step WalkThru Tutorials.

 
LVL 86

Expert Comment

by:Mike Tomlinson
ID: 33647875
Do you just want the "active" form?

    Form.ActiveForm.Text = "Hello!";

Or the current form?

    this.Text = "Hello!";
0
 
LVL 1

Author Comment

by:thready
ID: 33648427
I want only the main window (the one that opens as soon as my app starts)...
0
 
LVL 1

Author Closing Comment

by:thready
ID: 33648481
Thank you - this is what I was looking for!
0
 
LVL 86

Expert Comment

by:Mike Tomlinson
ID: 33648529
You could STORE the reference to your starting form as a static member in program.cs:

    static class Program
    {

        public static Form MainForm = null;

        ///
        /// The main entry point for the application.
        ///
        [STAThread]
        static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Program.MainForm = new Form1();
            Application.Run(Program.MainForm);
        }

    }

Now you can use "Program.MainForm" from anywhere in the app:

        private void button1_Click(object sender, EventArgs e)
        {
            Program.MainForm.Text = "Hello Starting Form!";
        }
0

Featured Post

Online Training Solution

Drastically shorten your training time with WalkMe's advanced online training solution that Guides your trainees to action. Forget about retraining and skyrocket knowledge retention rates.

Question has a verified solution.

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

Today I had a very interesting conundrum that had to get solved quickly. Needless to say, it wasn't resolved quickly because when we needed it we were very rushed, but as soon as the conference call was over and I took a step back I saw the correct …
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…
In this video we outline the Physical Segments view of NetCrunch network monitor. By following this brief how-to video, you will be able to learn how NetCrunch visualizes your network, how granular is the information collected, as well as where to f…
This is my first video review of Microsoft Bookings, I will be doing a part two with a bit more information, but wanted to get this out to you folks.

726 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