Solved

C# - Close a messageBox before displaying anther.

Posted on 2013-06-19
17
526 Views
Last Modified: 2013-06-30
Hello everybody.
Target: XP, Vista, 7
Environment: VS2010 Ultimate, C#, WinForms.

How to add message in a messageBox previously opened in C#?
||,
How to get the message of a messageBox previously opened, close this messageBox; show another messageBox whit the previously message and show in the next line another message?

Thanks in advance,
ocaccy
0
Comment
Question by:ocaccy
[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
  • 8
  • 5
  • 4
17 Comments
 
LVL 42

Assisted Solution

by:sedgwick
sedgwick earned 278 total points
ID: 39258932
do u control on the first messagebox being displayed?
aren't you the one who show it?
0
 
LVL 44

Assisted Solution

by:AndyAinscow
AndyAinscow earned 222 total points
ID: 39258953
Typically a MessageBox will block the thread calling it until the message box is closed by the user.
Assuming you are showing the message box yourself then it makes more sense to concatenate the messages you want displayed before you show the message box.
0
 

Author Comment

by:ocaccy
ID: 39258982
sedgwick, I use this:

MessageBox.Show(DateTime.Now.ToString("yyyy/M/d")+","+DateTime.Now.ToString("HH:mm:ss")+",Read error!");

Open in new window


Andy, I'll have some events that show messagebox, however we only allow one messageBox. Thus must concatenate the messages according to the events.
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!

 
LVL 42

Assisted Solution

by:sedgwick
sedgwick earned 278 total points
ID: 39259042
so before you show the first messagebox, save the message in some variable which will be used to concatenate in the second mesagebox.
0
 

Author Comment

by:ocaccy
ID: 39259107
I thought about that too. But how close the messageBox that is open to open another with the concatenate message?
0
 
LVL 42

Assisted Solution

by:sedgwick
sedgwick earned 278 total points
ID: 39259138
how do u open it?
Show() or ShowDialog()?
0
 

Author Comment

by:ocaccy
ID: 39259162
MessageBox.Show(
0
 

Author Comment

by:ocaccy
ID: 39259173
Also need to know how to clear the variable which will be used to concatenate messages
if the USER clicks on button messageBox?
0
 
LVL 42

Assisted Solution

by:sedgwick
sedgwick earned 278 total points
ID: 39259261
when using MessageBox.Show(), the window is not modal which means user can still interact with the main form.
is that what u want?
or do u want to force the user to click either button first?
0
 
LVL 44

Assisted Solution

by:AndyAinscow
AndyAinscow earned 222 total points
ID: 39259465
This is roughly what you require:
At class level you can have a string variable.

String sMessage;
...
sMessage += "hello ";
....
sMessage += world";
....

Then to show it use a normal message box
MessageBox.Show(sMessage);  //which does show the message box as modal


And to reset it on a button press for example
sMessage = "";
0
 

Author Comment

by:ocaccy
ID: 39259557
I need that when has a event that show messageBox, before close the messageBox opened, after this show the new messageBox. If use MessageBox.ShowDialog?
0
 
LVL 44

Assisted Solution

by:AndyAinscow
AndyAinscow earned 222 total points
ID: 39259573
MessageBox only supports Show (which opens it as modal, there is no modeless version - I think sedgwick mixed it up with a form which supports both variants).
0
 
LVL 42

Assisted Solution

by:sedgwick
sedgwick earned 278 total points
ID: 39259972
My mistake u right
0
 

Author Comment

by:ocaccy
ID: 39260575
Then, you guys have any suggestions for this problem?  I think if use another form like a messageBox, right?
0
 
LVL 44

Accepted Solution

by:
AndyAinscow earned 222 total points
ID: 39261574
>> you guys have any suggestions for this problem?

I'm really puzzled, exactly what is the problem.  Can you give an actual example of how you need this functionality.
Is your app using multiple threads (or numbers of modeless forms the user interacts with) to get data from somewhere?
0
 

Author Comment

by:ocaccy
ID: 39261586
Ok, I'm trying this code now!
        void messageBoxForm()
            {
            if(Application.OpenForms.OfType<MessageForm>().Count()>0)
                {
                MessageForm.ActiveForm.Disposed+=new EventHandler(closeMessageForm);
                }

            TopMost=false;
            MessageForm messageform=new MessageForm();
            messageform.ShowDialog();
            TopMost=Settings.Option.StayOnTop;
            Font=Settings.Option.MonoFont?monoFont:origFont;
            }

        private void closeMessageForm(object sender, EventArgs e)
           { MessageForm.ActiveForm.Dispose(); }

Open in new window

0
 

Author Closing Comment

by:ocaccy
ID: 39289070
Thank you for helping me, despite the weak explanation that I orrered them my problem.

Regards,
ocaccy
0

Featured Post

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!

Question has a verified solution.

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

Suggested Solutions

Title # Comments Views Activity
orderby list (from Json) 1 43
Nested forach loop to linq 3 42
Inserting LocalDB Table to SQL Server C# 3 48
How to input barcode scanner data into textbox in C#  ? 13 57
In order to hide the "ugly" records selectors (triangles) in the rowheaders, here are some suggestions. Microsoft doesn't have a direct method/property to do it. You can only hide the rowheader column. First solution, the easy way The first sol…
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…
The Email Laundry PDF encryption service allows companies to send confidential encrypted  emails to anybody. The PDF document can also contain attachments that are embedded in the encrypted PDF. The password is randomly generated by The Email Laundr…
A short tutorial showing how to set up an email signature in Outlook on the Web (previously known as OWA). For free email signatures designs, visit https://www.mail-signatures.com/articles/signature-templates/?sts=6651 If you want to manage em…

734 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