Go Premium for a chance to win a PS4. Enter to Win

x
?
Solved

From ShowModal to Show

Posted on 2011-09-16
5
Medium Priority
?
330 Views
Last Modified: 2013-12-17
HI,

I have a main form called MainForm and a second form called StickyNotes.
On the main form I have just one toolbar-button to call for the form StickyNotes.
It looks like this:

private void tbNewNote_Click(object sender, EventArgs e)
{
frmNote.txtCaption.Text = "";
frmNote.rtbContent.Clear();
frmNote.lblCreation.Text = (DateTime.Now.ToString());
if (frmNote.ShowDialog() == System.Windows.Forms.DialogResult.OK) <=========================
{
ListViewItem myItem = new ListViewItem(frmNote.txtCaption.Text, 0);
myItem = lvNotes.Items.Add(myItem);
myItem.SubItems.Add(frmNote.rtbContent.Text);
myItem.SubItems.Add(frmNote.lblCreation.Text);
}
}

But now I don't want to use a ShowDialog anymore but use multilpe forms
of the StickyNotes.What do I have to change in the code above to achieve this.

Who knows the answer and is willing to help me?

Greetings, Peter Kiers
0
Comment
Question by:peterkiers
5 Comments
 
LVL 3

Expert Comment

by:chrisbray
ID: 36551272
Hi Peter,

It sounds as though you want to go to MDI (Multiple Document Interface), meaning that you have multiple child forms for a single parent form.

To do this, set the IsMdiContainer property of the main form to True.

Then change your code as follows:

private void tbNewNote_Click(object sender, EventArgs e)
{
    frmNote.txtCaption.Text = "";
    frmNote.rtbContent.Clear();
    frmNote.lblCreation.Text = (DateTime.Now.ToString());
    frmNote.MdiParent = this;
    frmNote.Show();
}

Open in new window


However, unless you are going to ShowDialog you cannot wait for something to occur before you do something.  You will therefore need to move your save code into frmNote.

Once you have done this you will be able to create multiple notes at once.

Chris Bray
0
 
LVL 1

Author Comment

by:peterkiers
ID: 36551321
Hi, thanks for the reaction but I don't use MDI. Its just the mainform with a button
and by pressing on that button another form shows up called the StickyNotes.cs.

Peter
0
 
LVL 15

Accepted Solution

by:
x77 earned 2000 total points
ID: 36551332
You need suscribe FormClosed event for your new form.

Then you can cast Sender when StickyNotes is closed.
private void Button1_Click(object sender, EventArgs e)
{
    StickyNotes f = new StickyNotes();
    f.FormClosed += new FormClosedEventHandler(this.child_FormClosed);
    f.Show();
}

private void child_FormClosed(object sender, FormClosedEventArgs e)
{
    Debug.Print(((StickyNotes) sender).Name);
}

Open in new window

0
 
LVL 1

Author Comment

by:peterkiers
ID: 36551403
Thanks. Peter
0
 
LVL 40
ID: 36551414
ShowDialog is a special command that you use in special occasions, since it freezes the code for as long as the form is visible.

Use Show instead.
0

Featured Post

Visualize your virtual and backup environments

Create well-organized and polished visualizations of your virtual and backup environments when planning VMware vSphere, Microsoft Hyper-V or Veeam deployments. It helps you to gain better visibility and valuable business insights.

Question has a verified solution.

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

This article aims to explain the working of CircularLogArchiver. This tool was designed to solve the buildup of log file in cases where systems do not support circular logging or where circular logging is not enabled
Simulator games are perfect for generating sample realistic data streams, especially for learning data analysis. It is even useful for demoing offerings such as Azure stream analytics, PowerBI etc.
this video summaries big data hadoop online training demo (http://onlineitguru.com/big-data-hadoop-online-training-placement.html) , and covers basics in big data hadoop .
Whether it be Exchange Server Crash Issues, Dirty Shutdown Errors or Failed to mount error, Stellar Phoenix Mailbox Exchange Recovery has always got your back. With the help of its easy to understand user interface and 3 simple steps recovery proced…
Suggested Courses

824 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