SlideShare a Scribd company logo
1 of 41
Download to read offline
;`
C#Zone
Week 10(according to IUB outline):-
---------------------------------------------------------------------------------
10. Creating Windows-based Applications Part-I
Designing Forms: Using Common Controls, Using Container Controls, Creating Multiple Document
Interface (MDI) applications. Creating and using Main Menu, Toolbars, and Status Bar. Creating and Using
Common Dialog Boxes, Creating and Using Custom Dialog Boxes.
---------------------------------------------------------------------------------
Any issue:umarfarooqworld@outlook.com
Ref: guru99.com Pick “N” Share :C#Zone
2 | P a g e “A room without books is like a body without a soul”
C# Windows Forms Application
So far we have seen how to work with C# to create console based applications. But in a real
life scenario teams normally use Visual Studio and C# to create either Windows Forms or
Web-based applications.
A windows form application is any application, which is designed to run on a computer. It will
not run on web browser because then it becomes a web application.
This chapter will focus on how we can create Windows-based applications. We will also learn
some basics on how to work with the various elements of Windows applications.
In this tutorial, you will learn-
Windows Forms Basics
Hello World in Windows Forms
Adding Controls to a form
Event Handling for Controls
Other Controls
Windows Forms Basics
A Windows forms application is one that runs on the desktop computer. A Windows forms
application will normally have a collection of controls such as labels, textboxes, list boxes, etc.
Below is an example of a simple Windows form application. It shows a simple Login screen,
which is accessible by the user. The user will enter the required credentials and then will click
the Login button to proceed.
Ref: guru99.com Pick “N” Share :C#Zone
3 | P a g e “A room without books is like a body without a soul”
So an example of the controls available in the above application
1. This is a collection of label controls which are normally used to describe adjacent
controls. So in our case, we have 2 textboxes, and the labels are used to tell the user
that one textbox is for entering the user name and the other for the password.
2. The 2 textboxes are used to hold the username and password which will be entered by
the user.
3. Finally, we have the button control. The button control will normally have some code
attached to perform a certain set of actions. So for example in the above case, we could
have the button perform an action of validating the user name and password which is
entered by the user.
C# Hello World
Now let's look at an example of how we can implement a simple 'hello world' application in
Visual Studio. For this, we would need to implement the below-mentioned steps
Step 1) The first step involves the creation of a new project in Visual Studio. After launching
Visual Studio, you need to choose the menu option New->Project.
Ref: guru99.com Pick “N” Share :C#Zone
4 | P a g e “A room without books is like a body without a soul”
Step 2) The next step is to choose the project type as a Windows Forms application. Here we
also need to mention the name and location of our project.
x
1. In the project dialog box, we can see various options for creating different types of
projects in Visual Studio. Click the Windows option on the left-hand side.
2. When we click the Windows options in the previous step, we will be able to see an
option for Windows Forms Application. Click this option.
3. We then give a name for the application which in our case is DemoApplication. We also
need to provide a location to store our application.
4. Finally, we click the 'OK' button to let Visual Studio to create our project.
If the above steps are followed, you will get the below output in Visual Studio.
Output:-
Ref: guru99.com Pick “N” Share :C#Zone
5 | P a g e “A room without books is like a body without a soul”
You will actually see a Form Designer displayed in Visual Studio. It's on this Form Designer
that you will start building your Windows Forms application.
In the Solution explorer, you will also be able to see the DemoApplication Solution. This
solution will contain the below 2 project files
1. A Form application called Forms1.cs. This file will contain all of the code for the
Windows Form application.
2. The Main program called Program.cs is default code file which is created when a new
application is created in Visual Studio. This code will contain the startup code for the
application as a whole.
On the left-hand side of Visual Studio, you will also see a ToolBox. The toolbox contains all the
controls which can be added to a Windows Forms. Controls like a text box or a label are just
some of the controls which can be added to a Windows Forms.
Below is a screenshot of how the Toolbox looks like.
Ref: guru99.com Pick “N” Share :C#Zone
6 | P a g e “A room without books is like a body without a soul”
Step 3) In this step, we will now add a label to the Form which will display "Hello World." From
the toolbox , you will need to choose the Label control and simply drag it onto the Form.
Ref: guru99.com Pick “N” Share :C#Zone
7 | P a g e “A room without books is like a body without a soul”
Once you drag the label to the form, you can actually see the label embedded on the form as
shown below.
Step 4) The next step is to actually go to the properties of the control and Change the text to
'Hello World'.
To go to the properties of control, you need to right-click the control and choose the Properties
menu option
Ref: guru99.com Pick “N” Share :C#Zone
8 | P a g e “A room without books is like a body without a soul”
ď‚· The properties panel also shows up in Visual Studio. So for the label control, in the
properties control, go to the Text section and enter "Hello World".
ď‚· Each Control has a set of properties which describe the control.
If you follow all of the above steps and run your program in Visual Studio, you will get the
following output
Output:-
Ref: guru99.com Pick “N” Share :C#Zone
9 | P a g e “A room without books is like a body without a soul”
In the output, you can clearly see that the Windows Form is displayed. You can also see 'Hello
World' is displayed on the form.
Adding Controls to a form
We had already seen how to add a control to a form when we added the label control in the
earlier section to display "Hello World."
Let's look at the other controls available for Windows forms and see some of their common
properties.
In our example, we will create one form which will have the following functionality.
1. The ability for the user to enter name and address.
2. An option to choose the city in which the user resides in
3. The ability for the user to enter an option for the gender.
4. An option to choose a course which the user wants to learn. There will choices for both
C# and ASP.Net
So let's look at each control in detail and add them to build the form with the above-mentioned
functionality.
Group Box – A group box is used for grouping logical controls into a section. Let's take an
example, if you had a collection of controls for entering details such as name and address of a
person. Ideally, these are details of a person, so you would want to have these details in a
separate section on the Form. For this purpose, you can have a group box. Let's see how we
can implement this with an example shown below
Step 1) The first step is to drag the Groupbox control onto the Windows Form from the toolbox
as shown below
Ref: guru99.com Pick “N” Share :C#Zone
10 | P a g e “A room without books is like a body without a soul”
Step 2) Once the groupbox has been added, go to the properties window by clicking on the
groupbox control. In the properties window, go to the Text property and change it to "User
Details".
One you make the above changes, you will see the following output
Output:-
Ref: guru99.com Pick “N” Share :C#Zone
11 | P a g e “A room without books is like a body without a soul”
In the output, you can clearly see that the Groupbox was added to the form. You can also see
that the text of the groupbox was changed to "User Details."
Label Control – Next comes the Label Control. The label control is used to display a text or a
message to the user on the form. The label control is normally used along with other controls.
Common examples is wherein a label is added along with the textbox control.
The label gives an indication to the user on what is expected to fill up in the textbox. Let's see
how we can implement this with an example shown below. We will add 2 labels, one which will
be called 'name' and the other called 'address.' They will be used in conjunction with the
textbox controls which will be added in the later section.
Step 1) The first step is to drag the label control on to the Windows Form from the toolbox as
shown below. Make sure you drag the label control 2 times so that you can have one for the
'name' and the other for the 'address'.
Step 2) Once the label has been added, go to the properties window by clicking on the label
control. In the properties window, go to the Text property of each label control.
Ref: guru99.com Pick “N” Share :C#Zone
12 | P a g e “A room without books is like a body without a soul”
One you make the above changes, you will see the following output
Output:-
You can actually see the label controls added to the form.
 Textbox – A textbox is used for allowing a user to enter some text on the forms
application. Let's see how we can implement this with an example shown below. We will
add 2 textboxes to the form , one for the Name and the other for the address to be
entered for the user
Step 1) The first step is to drag the textbox control onto the Windows Form from the toolbox as
shown below
Ref: guru99.com Pick “N” Share :C#Zone
13 | P a g e “A room without books is like a body without a soul”
Step 2) Once the text boxes have been added, go to the properties window by clicking on the
textbox control. In the properties window, go to the Name property and add a meaningful
name to each textbox. For example, name the textbox for the user as txtUser and that for the
address as txtAddress. A naming convention and standard should be made for controls
because it becomes easier to add extra functionality to these controls, which we will see later
on.
One you make the above changes, you will see the following output
Output:-
Ref: guru99.com Pick “N” Share :C#Zone
14 | P a g e “A room without books is like a body without a soul”
In the output, you can clearly see that the Textboxes was added to the form.
List box – A Listbox is used to showcase a list of items on the Windows form. Let's see how
we can implement this with an example shown below. We will add a list box to the form to
store some city locations.
Step 1) The first step is to drag the list box control onto the Windows Form from the toolbox as
shown below
Step 2) Once the list box has been added, go to the properties window by clicking on the list
box control.
1. First, change the property of the Listbox box control , in our case we have changed this
to lstCity
2. Click on the Items property. This will allow you to add different items which can show up
in the list box. In our case, we have selected items "collection".
3. In the String Collection Editor, which pops up, enter the city names. In our case, we
have entered "Mumbai", "Bangalore" and "Hyderabad".
4. Finally, click on the 'OK' button.
Ref: guru99.com Pick “N” Share :C#Zone
15 | P a g e “A room without books is like a body without a soul”
One you make the above changes, you will see the following output
Output:-
In the output, you can clearly see that the Listbox was added to the form. You can also see
that the list box has been populated with the city values.
RadioButton - A Radiobutton is used to showcase a list of items out of which the user can
choose one. Let's see how we can implement this with an example shown below. We will add
a radio button for a male/female option.
Step 1) The first step is to drag the 'radiobutton' control onto the Windows Form from the
toolbox as shown below.
Ref: guru99.com Pick “N” Share :C#Zone
16 | P a g e “A room without books is like a body without a soul”
Step 2) Once the Radiobutton has been added, go to the properties window by clicking on the
Radiobutton control.
1. First, you need to change the text property of both Radio controls. Go the properties
windows and change the text to male of one radiobutton and the text of the other to
female.
2. Similarly, change the name property of both Radio controls. Go the properties windows
and change the name to 'rdMale' of one radiobutton and to 'rdfemale' for the other one.
One you make the above changes, you will see the following output
Output:-
Ref: guru99.com Pick “N” Share :C#Zone
17 | P a g e “A room without books is like a body without a soul”
You will see the Radio buttons added to the Windows form.
Checkbox - A checkbox is used to provide a list of options in which the user can choose
multiple choices. Let's see how we can implement this with an example shown below. We will
add 2 checkboxes to our Windows forms. These checkboxes will provide an option to the user
on whether they want to learn C# or ASP.Net.
Step 1) The first step is to drag the checkbox control onto the Windows Form from the toolbox
as shown below
Step 2) Once the checkbox has been added, go to the properties window by clicking on the
Checkbox control.
Ref: guru99.com Pick “N” Share :C#Zone
18 | P a g e “A room without books is like a body without a soul”
In the properties window,
1. First, you need to change the text property of both checkbox controls. Go the properties
windows and change the text to C# and ASP.Net.
2. Similarly, change the name property of both Radio controls. Go the properties windows
and change the name to chkC of one checkbox and to chkASP for the other one.
One you make the above changes, you will see the following output
Output:-
Button - A button is used to allow the user to click on a button which would then start the
processing of the form. Let's see how we can implement this with an example shown below.
We will add a simple button called 'Submit' which will be used to submit all the information on
the form.
Step 1) The first step is to drag the button control onto the Windows Form from the toolbox as
shown below
Ref: guru99.com Pick “N” Share :C#Zone
19 | P a g e “A room without books is like a body without a soul”
Step 2) Once the Button has been added, go to the properties window by clicking on the
Button control.
1. First, you need to change the text property of the button control. Go the properties
windows and change the text to 'submit'.
2. Similarly, change the name property of the control. Go the properties windows and
change the name to 'btnSubmit'.
One you make the above changes, you will see the following output
Ref: guru99.com Pick “N” Share :C#Zone
20 | P a g e “A room without books is like a body without a soul”
Output:-
Congrats, you now have your first basic Windows Form in place. Let's now go to the next topic
to see how we can do Event handling for Controls.
C# Event Handling for Controls
When working with windows form, you can add events to controls. An event is something that
happens when an action is performed. Probably the most common action is the clicking of a
button on a form. In Windows forms , you can add code which can be used to perform certain
actions when a button is pressed on the form.
Normally when a button is pressed on a form, it means that some processing should take
place.
Let's take a look at one of the event and how it can be handled before we go onto the button
event scenario.
The below example will showcase an event for the Listbox control. So whenever an item is
selected in the listbox control, a message box should pop up which shows the item selected.
Let's perform the following steps to achieve this.
Step 1) Double click on the Listbox in the form designer. By doing this, Visual Studio will
automatically open up the code file for the form. And it will automatically add an event method
to the code. This event method will be triggered, whenever any item in the listbox is selected.
Ref: guru99.com Pick “N” Share :C#Zone
21 | P a g e “A room without books is like a body without a soul”
Above is the snippet of code which is automatically added by Visual Studio, when you double-
click the List box control on the form. Now let's add the below section of code to this snippet of
code, to add the required functionality to the listbox event.
1. This is the event handler method which is automatically created by Visual Studio when
you double-click the List box control. You don't need to worry about the complexity of
the method name or the parameters passed to the method.
2. Here we are getting the SelectedItem through the lstCity.SelectedItem property.
Remember that lstCity is the name of our Listbox control. We then use the GetItemText
method to get the actual value of the selected item. We then assign this value to the text
variable.
3. Finally, we use the MessageBox method to display the text variable value to the user.
One you make the above changes, and run the program in Visual Studio you will see the
following output
Output:-
Ref: guru99.com Pick “N” Share :C#Zone
22 | P a g e “A room without books is like a body without a soul”
From the output, you can clearly see that when any item from the list box is selected, a
message box will pops up. This will show the selected item from the listbox.
Now let's look at the final control which is the button click Method. Again this follows the same
philosophy. Just double click the button in the Forms Designer and it will automatically add the
method for the button event handler. Then you just need to add the below code.
1. This is the event handler method which is automatically created by Visual Studio when
you double click the button control. You don't need to worry on the complexity of the
method name or the parameters passed to the method.
2. Here we are getting values entered in the name and address textbox. The values can
be taken from the text property of the textbox. We then assign the values to 2 variables,
name, and address accordingly.
3. Finally, we use the MessageBox method to display the name and address values to the
user.
One you make the above changes, and run the program in Visual Studio you will see the
following output
Output:-
Ref: guru99.com Pick “N” Share :C#Zone
23 | P a g e “A room without books is like a body without a soul”
1. First, enter a value in the name and address field.
2. Then click on the Submit button
Once you click the Submit button , a message box will pop, and it will correctly show you what
you entered in the user details section.
Other Controls
There are 2 further controls we can look at, one is the 'Tree Control' and the other is the
'Image control'. Let's look at examples of how we can implement these controls
 TreeControl – The tree control is used to list down items in a tree like fashion. Probably
the best example is when we see the Windows Explorer itself. The folder structure in
Windows explorer is like a tree like structure.
Let's see how we can implement this with an example shown below.
Step 1) The first step is to drag the Tree control onto the Windows Form from the toolbox as
shown below
Step 2) The next step is start adding nodes to the tree collection so that it can come up in the
tree accordingly. First, let's follow the below sub-steps to add a root node to the tree collection.
Ref: guru99.com Pick “N” Share :C#Zone
24 | P a g e “A room without books is like a body without a soul”
1. Go to the properties toolbox for the tree view control. Click on the Node's property. This
will bring up the TreeNode Editor
2. In the TreeNode Editor click on the Add Root button to add a root node to the tree
collection.
3. Next, change the text of the Root node and provide the text as Root and click 'OK'
button. This will add Root node.
Step 3) The next step is start adding the child nodes to the tree collection. Let's follow the
below sub-steps to add child root node to the tree collection.
1. First, click on the Add child button. This will allow you to add child nodes to the Tree
collection.
2. For each child node, change the text property. Keep on repeating the previous step and
this step and add 2 additional nodes. In the end, you will have 3 nodes as shown above,
with the text as Label, Button, and Checkbox respectively.
3. Click on the OK button
Once you have made the above changes, you will see the following output.
Output:-
Ref: guru99.com Pick “N” Share :C#Zone
25 | P a g e “A room without books is like a body without a soul”
You will actually be able to see the Tree view added to the form. When you run the Windows
form application, you can expand the root node and see the child nodes in the list.
 PictureBox Control – This control is used to add images to the Windows Forms. Let's
see how we can implement this with an example shown below.
Step 1) The first step is to drag the PictureBox control onto the Windows Form from the
toolbox as shown below
Step 2) The next step is to actually attach an image to the picture box control. This can be
done by following the below steps.
Ref: guru99.com Pick “N” Share :C#Zone
26 | P a g e “A room without books is like a body without a soul”
1. First, click on the Image property for the PictureBox control. A new window will pops
out.
2. In this window, click on the Import button. This will be used to attach an image to the
picturebox control.
3. A dialog box will pop up in which you will be able to choose the image to attach the
picturebox
4. Click on the OK button
One you make the above changes, you will see the following output
Output:-
From the output, you can clearly see that an image is displayed on the form.
Summary
ď‚· A Windows forms application is one that runs on the desktop of a computer. Visual
Studio along with C# can be used to create a Windows Forms application.
ď‚· Controls can be added to the Windows forms via the Toolbox in Visual Studio. Controls
such as labels , checkboxes , radio buttons, etc. can be added to the form via the
toolbox.
ď‚· One can also use advanced controls like the treeview control and the picturebox control.
ď‚· Event handlers are used to respond to events generated from controls. The most
common one is the one added for the button clicked event.
Ref: guru99.com Pick “N” Share :C#Zone
27 | P a g e “A room without books is like a body without a soul”
Find factorial of a number??
using System;
using System.Windows.Forms;
namespace picknshare
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void txtResult_TextChanged(object sender, EventArgs e)
{
}
private void label1_Click(object sender, EventArgs e)
{
}
private void label2_Click(object sender, EventArgs e)
{
}
private void Form1_Load(object sender, EventArgs e)
{
MessageBox.Show("Lets's start with Pick N Share!");
}
private void txt1_TextChanged(object sender, EventArgs e)
{
}
private void btn_Click(object sender, EventArgs e)
{
int num = Convert.ToInt32(txt1.Text);
int fact = 1;
int i=1;
while(i<=num)
{
fact = fact * i;
i++;
}
txtResult.Text = Convert.ToString(fact);
}
}
}
When loading of form..
Ref: guru99.com Pick “N” Share :C#Zone
28 | P a g e “A room without books is like a body without a soul”
Creating Multiple Document Interface (MDI) applications.
Firstly, create a project:
After this, a form will be generated automatically as form1:
Ref: guru99.com Pick “N” Share :C#Zone
29 | P a g e “A room without books is like a body without a soul”
Right click on project name (picknshare) and add new windows form2.
Ref: guru99.com Pick “N” Share :C#Zone
30 | P a g e “A room without books is like a body without a soul”
Drag a button on form 1.
Right click on Button and select property.
Ref: guru99.com Pick “N” Share :C#Zone
31 | P a g e “A room without books is like a body without a soul”
Write button name .
Write button text.
Ref: guru99.com Pick “N” Share :C#Zone
32 | P a g e “A room without books is like a body without a soul”
Double click on button that is placed on form 1.
And this button’s click event generated then write down some coding to open
form 2 within form 1 when click on this button.
1. Create form2’s object.
2. Show() method called to open form.
3. Mdiparent means this form 2 is open, within the boundary of form 1.
Now run program and click on button..
Following window will be shows.
Ref: guru99.com Pick “N” Share :C#Zone
33 | P a g e “A room without books is like a body without a soul”
C# Menu Control
A Menu on a Windows Form is created with a MainMenu object, which is a
collection of MenuItem objects. MainMenu is the container for the Menu
structure of the form and menus are made of MenuItem objects that
represent individual parts of a menu.
You can add menus to Windows Forms at design time by adding the
MainMenu component and then appending menu items to it using the Menu
Designer.
After drag the Menustrip on your form you can directly create the menu
items by type a value into the "Type Here" box on the menubar part of your
form. From the following picture you can understand how to create each
menu items on mainmenu Object.
Ref: guru99.com Pick “N” Share :C#Zone
34 | P a g e “A room without books is like a body without a soul”
If you need a seperator bar , right click on your menu then go to insert-
>Seperator.
Ref: guru99.com Pick “N” Share :C#Zone
35 | P a g e “A room without books is like a body without a soul”
After creating the Menu on the form , you have to double click on each
menu item and write the programs there depends on your requirements.
The following C# program shows how to show a messagebox when clicking
a Menu item.
using System;
using System.Drawing;
using System.Windows.Forms;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void menu1ToolStripMenuItem_Click(object sender, EventArgs e)
{
MessageBox.Show("You are selected MenuItem_1");
}
}
}
Combo box
1.Drag combo box from toolbox and drop on form.
2. Drag text box from toolbox and drop on form.
3.Drag button from toolbox and drop on form for add item
in the combo box by text box.
4.Drag button from toolbox and drop on form for reset
combo box.
5.Drag button and text box from toolbox and drop on form
for count items in the combo box and display on the
above textbox.
Ref: guru99.com Pick “N” Share :C#Zone
36 | P a g e “A room without books is like a body without a soul”
Ref: guru99.com Pick “N” Share :C#Zone
37 | P a g e “A room without books is like a body without a soul”
Ref: guru99.com Pick “N” Share :C#Zone
38 | P a g e “A room without books is like a body without a soul”
Custom Dialog Box
Many of the posts I write for this column come directly from common things I see being asked in the community. That community
might be Lidnug, it might be Stack Overflow, Code Project, or many of the small, obscure forum and help sites. The point here is,
there are questions that I see over and over again, and one of them undoubtedly is the:
"How do I create a message box with a text input on it?"
Many of you might be thinking, "Well, that's easy. I can do that no problem." But, to many beginners, and even some that who been
in the industry for some time, it might come as a surprise that the stock answer is:
"Use the "Microsoft.VisualBasic.Interaction" namespace. There's a method called "InputBox" that will do what you need."
This stack overflow post is a perfect example:
Now, I don't know about you, but if I'm working in C# (which I do 99% of the time), I really don't like the idea of importing something
that's specific to VB.NET. I know that at the end of the day, they're all just compiled assemblies, but stop and ask yourself this
question:
If they are all just compiled assemblies, why did the language designers feel that this input box should be made available only to
VB.NET in its runtime, and not globally in the base .NET libraries? Well, I can't answer that question directly for you, but I can
answer it in my own way.
A Better Way?
Absolutely. Remember, you're dealing with Windows Forms and strongly typed objects here. You can encapsulate things in C# in
ways you can't (or are difficult to do) in Visual Basic.
Now at this point, yes I realise I'm going to get the VB Zealots baying for my blood because I've dared say something negative
about the VB Language, but In my own opinion (not representative of anyone else's), this is the case that I've always found, time &
time again.
So how can we do things better? Well, let's start by firing up Visual Studio, and creating a new Windows Forms application. I'll not
repeat the steps for that, as it's fairly easy. If you've done this correctly, you should be greeted with a bare WinForms app that looks
something like this:
Ref: guru99.com Pick “N” Share :C#Zone
39 | P a g e “A room without books is like a body without a soul”
By default, Visual Studio will have created a main form for you, and set up all the assemblies you need to develop a desktop
application in .NET. At this point, if you were following the advice in the stack overflow post, you'd use the references section to find
the Visual Basic stubs you need and import them, making the VB text input available to use.
We, however, are going to do things a little differently. Right-click your WinForms project, and add a new Windows Form.
You can call it what you like, but I've called mine 'MessageDialog'. We'll start by making it into a very simple 'MessageBox'
replacement.
In the properties for the new form, set "FormBorder" to "FixedDialog"; set "MaximizeBox" to "False"; set "MinimizeBox" to "False";
and set "StartPosition" to "CenterScreen". Drag your form size for the new form, out to an average size message box, and then
place a label and a button on it.
Give the Label an recognizable name (such as MessageText), and the button a name such as "OkButton", set the label's
"AutoSize" property to "False", and then stretch it out so that it fills the main part of your dialog box, then set its "TextAlign" property
to "MiddleCentre".
Back in the Form Properties, set the "AcceptButton" and "CancelButton" property to the name you gave your "Ok Button". Set the
text on the button to "Ok" and line it up in the bottom centre of your dialog.MessageDialog form. You should have something that
looks like this
Press F7 to switch to the code view for your Dialog, and just below the constructor, add the following method.
1. public DialogResult Show(string title, string messageText)
2. {
3. Text = title;
4. MessageText.Text = messageText;
5. return (ShowDialog());
6. }
Ref: guru99.com Pick “N” Share :C#Zone
40 | P a g e “A room without books is like a body without a soul”
Now, switch back to your initial form, add a button to that, double-click the button, and then add the following code into the button
handler.
1. private void button1_Click(object sender, EventArgs e)
2. {
3. MessageDialog messageDialog = new MessageDialog();
4. messageDialog.Show("My Message",
5. "This is my custom message dialog");
6. }
Press F5 to run the program, and, when you click the button, you should see your custom dialog. It should behave just like the
normal message box one.
At this point, hopefully you can see now that's your not that far away from adding multiple button sets and Icon sets just like the
built-in MessageBox functionality. You could also make the entire class a static class, meaning you don't need to "new the object
up"; you can just use it the same way as the built-in MessageBox.
I leave all of that to you, however. For this one, we're going to extend it to behave like the Visual Basic Input Box. If you look up the
documentation for the VB input box, you'll see the following information.
1. public static string InputBox(
2. string Prompt,
3. string Title,
4. string DefaultResponse,
5. int XPos,
6. int YPos
7. )
The method call takes five parameters, the first of which, "Prompt," is required. The rest are optional. Note also that the Input box is
static too; we'll not be making this one static, but if you 100% wanted to be true, you could do so easily.
Looking at an image of the Visual Basic input box, it has an OK & Cancel button to the top right, space for a question to the top left,
and a text input all the way along the bottom.
Make the changes to your MessageDialog form to reflect this. Mine now looks like the following:
Figure 4: The revised MessageDialog form
The label is called "MessageText", the buttons are "OkButton" and "CancelButton", and the text input box is called "TextInput". To
make the calling structure the same as the original Visual Basic one, we also need to implement a method with the five parameters
shown in the previous code snippet.
If you read the documentation on those parameters on MSDN, it has the following to say:
ď‚· Prompt: String, Required - The text to display in the message on the dialog approx 1024 chars in length.
ď‚· Title: String, Optional - Title to be shown on the dialog, defaults to application name if not provided.
ď‚· DefaultResponse: String, Optional - Response to return if the user does not enter anything in the box but still presses OK.
ď‚· Xpos/Ypos: Integer, Optional - The distance the upper left corner of the dialog is from the upper left corner of the screen,
defaults to middle and approx one third down if omitted.
Ref: guru99.com Pick “N” Share :C#Zone
41 | P a g e “A room without books is like a body without a soul”
This means our method might look something like this:
1. public string InputBox(string Prompt , string Title = "",
2. string DefaultResponse = "", int Xpos = 0, int Ypos = 0)
3. {
4. MessageText.Text = Prompt;
5. Text = String.IsNullOrEmpty(Title) ?
6. Application.ProductName : Title;
7.
8. if (Xpos != 0) Left = Xpos;
9. if (Ypos != 0) Top = Ypos;
10.
11. var resultCode = ShowDialog();
12. if(resultCode == DialogResult.OK)
13. {
14. if(String.IsNullOrEmpty(TextInput.Text))
15. {
16. return DefaultResponse;
17. }
18. return TextInput.Text;
19. }
20.
21. return String.Empty;
22. }
A few changes to the properties on your InputForm are also needed as follows:
Change the "DialogResult" property of your "OkButton" to "Ok", and the "DIalogResult" property on the "CancelButton" to "Cancel".
Make sure that the "AcceptButton" property of the form is "OkButton" (or whatever name you gave your OK button), and make sure
the "CancelButton" property is the name of your "CancelButton".
Once you make these changes, and update the code in your main form to call the new method. If all goes correctly when you press
F5, you should be greeted with the following:
At this point, you should be able to click OK or Cancel and get the same return values as per the Visual Basic version, but you
should also be able to see how much extra flexibility and potential you have for expansion. You could, for example, create a dialog
that has a drop-down on it, or even create a new type of open/save dialog.

More Related Content

What's hot

Visual basic 6 black book
Visual basic 6 black bookVisual basic 6 black book
Visual basic 6 black bookAjay Goyal
 
Interactive material
Interactive materialInteractive material
Interactive materialAnoo Al-henai
 
06 win forms
06 win forms06 win forms
06 win formsmrjw
 
Buttons In .net Visual Basic
Buttons In .net Visual BasicButtons In .net Visual Basic
Buttons In .net Visual Basicmanish maurya
 
Chapter 01
Chapter 01Chapter 01
Chapter 01Terry Yoast
 
Visual basic
Visual basicVisual basic
Visual basicumesh patil
 
Visual basic ppt for tutorials computer
Visual basic ppt for tutorials computerVisual basic ppt for tutorials computer
Visual basic ppt for tutorials computersimran153
 
Visual basic
Visual basicVisual basic
Visual basicsanjay joshi
 
Chapter 2 — Program and Graphical User Interface Design
Chapter 2 — Program and Graphical User Interface DesignChapter 2 — Program and Graphical User Interface Design
Chapter 2 — Program and Graphical User Interface Designfrancopw
 
Introduction to visual basic programming
Introduction to visual basic programmingIntroduction to visual basic programming
Introduction to visual basic programmingRoger Argarin
 
Chapter 03 - Program Coding and Design
Chapter 03 - Program Coding and DesignChapter 03 - Program Coding and Design
Chapter 03 - Program Coding and Designpatf719
 
Common dialog control
Common dialog controlCommon dialog control
Common dialog controlSoumya Vijoy
 
Chapter 3 — Program Design and Coding
Chapter 3 — Program Design and Coding Chapter 3 — Program Design and Coding
Chapter 3 — Program Design and Coding francopw
 
Intake 37 9
Intake 37 9Intake 37 9
Intake 37 9Mahmoud Ouf
 
Vb unit t 1.1
Vb unit t 1.1Vb unit t 1.1
Vb unit t 1.1Gayathri Cit
 
Meaning Of VB
Meaning Of VBMeaning Of VB
Meaning Of VBMohit Verma
 
Visual Programming
Visual ProgrammingVisual Programming
Visual ProgrammingBagzzz
 

What's hot (20)

Visual basic 6 black book
Visual basic 6 black bookVisual basic 6 black book
Visual basic 6 black book
 
Interactive material
Interactive materialInteractive material
Interactive material
 
06 win forms
06 win forms06 win forms
06 win forms
 
Vb tutorial
Vb tutorialVb tutorial
Vb tutorial
 
Buttons In .net Visual Basic
Buttons In .net Visual BasicButtons In .net Visual Basic
Buttons In .net Visual Basic
 
Chapter 01
Chapter 01Chapter 01
Chapter 01
 
Vb basics
Vb basicsVb basics
Vb basics
 
Visual basic
Visual basicVisual basic
Visual basic
 
Visual basic ppt for tutorials computer
Visual basic ppt for tutorials computerVisual basic ppt for tutorials computer
Visual basic ppt for tutorials computer
 
Visual basic
Visual basicVisual basic
Visual basic
 
Chapter 2 — Program and Graphical User Interface Design
Chapter 2 — Program and Graphical User Interface DesignChapter 2 — Program and Graphical User Interface Design
Chapter 2 — Program and Graphical User Interface Design
 
Introduction to visual basic programming
Introduction to visual basic programmingIntroduction to visual basic programming
Introduction to visual basic programming
 
Chapter 03 - Program Coding and Design
Chapter 03 - Program Coding and DesignChapter 03 - Program Coding and Design
Chapter 03 - Program Coding and Design
 
Common dialog control
Common dialog controlCommon dialog control
Common dialog control
 
Chapter 3 — Program Design and Coding
Chapter 3 — Program Design and Coding Chapter 3 — Program Design and Coding
Chapter 3 — Program Design and Coding
 
Intake 37 9
Intake 37 9Intake 37 9
Intake 37 9
 
Vb unit t 1.1
Vb unit t 1.1Vb unit t 1.1
Vb unit t 1.1
 
Meaning Of VB
Meaning Of VBMeaning Of VB
Meaning Of VB
 
Visusual basic
Visusual basicVisusual basic
Visusual basic
 
Visual Programming
Visual ProgrammingVisual Programming
Visual Programming
 

Similar to Creating Windows-based Applications Part-I

Chapter2.ppt
Chapter2.pptChapter2.ppt
Chapter2.pptLalRatan
 
Software engineering modeling lab lectures
Software engineering modeling lab lecturesSoftware engineering modeling lab lectures
Software engineering modeling lab lecturesmarwaeng
 
The visual studio start page is shown in the figure below
The visual studio start page is shown in the figure belowThe visual studio start page is shown in the figure below
The visual studio start page is shown in the figure belowTan Ps
 
Csc153 chapter 03
Csc153 chapter 03Csc153 chapter 03
Csc153 chapter 03PCC
 
hjksjdhksjhcksjhckjhskdjhcskjhckjdppt.pptx
hjksjdhksjhcksjhckjhskdjhcskjhckjdppt.pptxhjksjdhksjhcksjhckjhskdjhcskjhckjdppt.pptx
hjksjdhksjhcksjhckjhskdjhcskjhckjdppt.pptxEliasPetros
 
LECTURE 12 WINDOWS FORMS PART 2.pptx
LECTURE 12 WINDOWS FORMS PART 2.pptxLECTURE 12 WINDOWS FORMS PART 2.pptx
LECTURE 12 WINDOWS FORMS PART 2.pptxAOmaAli
 
Vb.net ide
Vb.net ideVb.net ide
Vb.net ideFaisal Aziz
 
Gui builder
Gui builderGui builder
Gui builderlearnt
 
Unit IV-Checkboxes and Radio Buttons in VB.Net in VB.NET
Unit IV-Checkboxes    and   Radio Buttons in VB.Net in VB.NET Unit IV-Checkboxes    and   Radio Buttons in VB.Net in VB.NET
Unit IV-Checkboxes and Radio Buttons in VB.Net in VB.NET Ujwala Junghare
 
Vbtutorial
VbtutorialVbtutorial
Vbtutorialdhi her
 
PT1420 File Access and Visual Basic .docx
PT1420 File Access and Visual Basic                      .docxPT1420 File Access and Visual Basic                      .docx
PT1420 File Access and Visual Basic .docxamrit47
 
How to work with code blocks
How to work with code blocksHow to work with code blocks
How to work with code blocksTech Bikram
 
Vb6.0 intro
Vb6.0 introVb6.0 intro
Vb6.0 introJOSEPHINEA6
 
Intake 38 9
Intake 38 9Intake 38 9
Intake 38 9Mahmoud Ouf
 
Visual basic concepts
Visual basic conceptsVisual basic concepts
Visual basic conceptsmelody77776
 
Cis 355 i lab 4 of 6
Cis 355 i lab 4 of 6Cis 355 i lab 4 of 6
Cis 355 i lab 4 of 6helpido9
 
Cis 355 ilab 4 of 6
Cis 355 ilab 4 of 6Cis 355 ilab 4 of 6
Cis 355 ilab 4 of 6comp274
 
Visual programming basic.ppt bs cs5th class
Visual programming basic.ppt bs cs5th classVisual programming basic.ppt bs cs5th class
Visual programming basic.ppt bs cs5th classmnewg218
 
Chapter 1
Chapter 1Chapter 1
Chapter 1gebrsh
 

Similar to Creating Windows-based Applications Part-I (20)

Chapter2.ppt
Chapter2.pptChapter2.ppt
Chapter2.ppt
 
Software engineering modeling lab lectures
Software engineering modeling lab lecturesSoftware engineering modeling lab lectures
Software engineering modeling lab lectures
 
The visual studio start page is shown in the figure below
The visual studio start page is shown in the figure belowThe visual studio start page is shown in the figure below
The visual studio start page is shown in the figure below
 
Csc153 chapter 03
Csc153 chapter 03Csc153 chapter 03
Csc153 chapter 03
 
hjksjdhksjhcksjhckjhskdjhcskjhckjdppt.pptx
hjksjdhksjhcksjhckjhskdjhcskjhckjdppt.pptxhjksjdhksjhcksjhckjhskdjhcskjhckjdppt.pptx
hjksjdhksjhcksjhckjhskdjhcskjhckjdppt.pptx
 
Chapter - 6.pptx
Chapter - 6.pptxChapter - 6.pptx
Chapter - 6.pptx
 
LECTURE 12 WINDOWS FORMS PART 2.pptx
LECTURE 12 WINDOWS FORMS PART 2.pptxLECTURE 12 WINDOWS FORMS PART 2.pptx
LECTURE 12 WINDOWS FORMS PART 2.pptx
 
Vb.net ide
Vb.net ideVb.net ide
Vb.net ide
 
Gui builder
Gui builderGui builder
Gui builder
 
Unit IV-Checkboxes and Radio Buttons in VB.Net in VB.NET
Unit IV-Checkboxes    and   Radio Buttons in VB.Net in VB.NET Unit IV-Checkboxes    and   Radio Buttons in VB.Net in VB.NET
Unit IV-Checkboxes and Radio Buttons in VB.Net in VB.NET
 
Vbtutorial
VbtutorialVbtutorial
Vbtutorial
 
PT1420 File Access and Visual Basic .docx
PT1420 File Access and Visual Basic                      .docxPT1420 File Access and Visual Basic                      .docx
PT1420 File Access and Visual Basic .docx
 
How to work with code blocks
How to work with code blocksHow to work with code blocks
How to work with code blocks
 
Vb6.0 intro
Vb6.0 introVb6.0 intro
Vb6.0 intro
 
Intake 38 9
Intake 38 9Intake 38 9
Intake 38 9
 
Visual basic concepts
Visual basic conceptsVisual basic concepts
Visual basic concepts
 
Cis 355 i lab 4 of 6
Cis 355 i lab 4 of 6Cis 355 i lab 4 of 6
Cis 355 i lab 4 of 6
 
Cis 355 ilab 4 of 6
Cis 355 ilab 4 of 6Cis 355 ilab 4 of 6
Cis 355 ilab 4 of 6
 
Visual programming basic.ppt bs cs5th class
Visual programming basic.ppt bs cs5th classVisual programming basic.ppt bs cs5th class
Visual programming basic.ppt bs cs5th class
 
Chapter 1
Chapter 1Chapter 1
Chapter 1
 

More from Umar Farooq

Ado.Net Architecture
Ado.Net ArchitectureAdo.Net Architecture
Ado.Net ArchitectureUmar Farooq
 
Linq in C#
Linq in C#Linq in C#
Linq in C#Umar Farooq
 
Building .NET-based Applications with C#
Building .NET-based Applications with C#Building .NET-based Applications with C#
Building .NET-based Applications with C#Umar Farooq
 
Selection Sort
Selection Sort Selection Sort
Selection Sort Umar Farooq
 
Week 9 IUB c#
Week 9 IUB c#Week 9 IUB c#
Week 9 IUB c#Umar Farooq
 
Polymorphism, Abstarct Class and Interface in C#
Polymorphism, Abstarct Class and Interface in C#Polymorphism, Abstarct Class and Interface in C#
Polymorphism, Abstarct Class and Interface in C#Umar Farooq
 
Array and Collections in c#
Array and Collections in c#Array and Collections in c#
Array and Collections in c#Umar Farooq
 
C# (This keyword, Properties, Inheritance, Base Keyword)
C# (This keyword, Properties, Inheritance, Base Keyword)C# (This keyword, Properties, Inheritance, Base Keyword)
C# (This keyword, Properties, Inheritance, Base Keyword)Umar Farooq
 
Software process model
Software process modelSoftware process model
Software process modelUmar Farooq
 

More from Umar Farooq (10)

Ado.Net Architecture
Ado.Net ArchitectureAdo.Net Architecture
Ado.Net Architecture
 
Linq in C#
Linq in C#Linq in C#
Linq in C#
 
Building .NET-based Applications with C#
Building .NET-based Applications with C#Building .NET-based Applications with C#
Building .NET-based Applications with C#
 
Selection Sort
Selection Sort Selection Sort
Selection Sort
 
Week 9 IUB c#
Week 9 IUB c#Week 9 IUB c#
Week 9 IUB c#
 
Matrix
MatrixMatrix
Matrix
 
Polymorphism, Abstarct Class and Interface in C#
Polymorphism, Abstarct Class and Interface in C#Polymorphism, Abstarct Class and Interface in C#
Polymorphism, Abstarct Class and Interface in C#
 
Array and Collections in c#
Array and Collections in c#Array and Collections in c#
Array and Collections in c#
 
C# (This keyword, Properties, Inheritance, Base Keyword)
C# (This keyword, Properties, Inheritance, Base Keyword)C# (This keyword, Properties, Inheritance, Base Keyword)
C# (This keyword, Properties, Inheritance, Base Keyword)
 
Software process model
Software process modelSoftware process model
Software process model
 

Recently uploaded

Computed Fields and api Depends in the Odoo 17
Computed Fields and api Depends in the Odoo 17Computed Fields and api Depends in the Odoo 17
Computed Fields and api Depends in the Odoo 17Celine George
 
Organic Name Reactions for the students and aspirants of Chemistry12th.pptx
Organic Name Reactions  for the students and aspirants of Chemistry12th.pptxOrganic Name Reactions  for the students and aspirants of Chemistry12th.pptx
Organic Name Reactions for the students and aspirants of Chemistry12th.pptxVS Mahajan Coaching Centre
 
EPANDING THE CONTENT OF AN OUTLINE using notes.pptx
EPANDING THE CONTENT OF AN OUTLINE using notes.pptxEPANDING THE CONTENT OF AN OUTLINE using notes.pptx
EPANDING THE CONTENT OF AN OUTLINE using notes.pptxRaymartEstabillo3
 
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️9953056974 Low Rate Call Girls In Saket, Delhi NCR
 
ECONOMIC CONTEXT - LONG FORM TV DRAMA - PPT
ECONOMIC CONTEXT - LONG FORM TV DRAMA - PPTECONOMIC CONTEXT - LONG FORM TV DRAMA - PPT
ECONOMIC CONTEXT - LONG FORM TV DRAMA - PPTiammrhaywood
 
Roles & Responsibilities in Pharmacovigilance
Roles & Responsibilities in PharmacovigilanceRoles & Responsibilities in Pharmacovigilance
Roles & Responsibilities in PharmacovigilanceSamikshaHamane
 
Earth Day Presentation wow hello nice great
Earth Day Presentation wow hello nice greatEarth Day Presentation wow hello nice great
Earth Day Presentation wow hello nice greatYousafMalik24
 
Types of Journalistic Writing Grade 8.pptx
Types of Journalistic Writing Grade 8.pptxTypes of Journalistic Writing Grade 8.pptx
Types of Journalistic Writing Grade 8.pptxEyham Joco
 
AmericanHighSchoolsprezentacijaoskolama.
AmericanHighSchoolsprezentacijaoskolama.AmericanHighSchoolsprezentacijaoskolama.
AmericanHighSchoolsprezentacijaoskolama.arsicmarija21
 
Meghan Sutherland In Media Res Media Component
Meghan Sutherland In Media Res Media ComponentMeghan Sutherland In Media Res Media Component
Meghan Sutherland In Media Res Media ComponentInMediaRes1
 
Hierarchy of management that covers different levels of management
Hierarchy of management that covers different levels of managementHierarchy of management that covers different levels of management
Hierarchy of management that covers different levels of managementmkooblal
 
Historical philosophical, theoretical, and legal foundations of special and i...
Historical philosophical, theoretical, and legal foundations of special and i...Historical philosophical, theoretical, and legal foundations of special and i...
Historical philosophical, theoretical, and legal foundations of special and i...jaredbarbolino94
 
Introduction to ArtificiaI Intelligence in Higher Education
Introduction to ArtificiaI Intelligence in Higher EducationIntroduction to ArtificiaI Intelligence in Higher Education
Introduction to ArtificiaI Intelligence in Higher Educationpboyjonauth
 
MARGINALIZATION (Different learners in Marginalized Group
MARGINALIZATION (Different learners in Marginalized GroupMARGINALIZATION (Different learners in Marginalized Group
MARGINALIZATION (Different learners in Marginalized GroupJonathanParaisoCruz
 
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptx
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptxECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptx
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptxiammrhaywood
 
Framing an Appropriate Research Question 6b9b26d93da94caf993c038d9efcdedb.pdf
Framing an Appropriate Research Question 6b9b26d93da94caf993c038d9efcdedb.pdfFraming an Appropriate Research Question 6b9b26d93da94caf993c038d9efcdedb.pdf
Framing an Appropriate Research Question 6b9b26d93da94caf993c038d9efcdedb.pdfUjwalaBharambe
 
Crayon Activity Handout For the Crayon A
Crayon Activity Handout For the Crayon ACrayon Activity Handout For the Crayon A
Crayon Activity Handout For the Crayon AUnboundStockton
 
CELL CYCLE Division Science 8 quarter IV.pptx
CELL CYCLE Division Science 8 quarter IV.pptxCELL CYCLE Division Science 8 quarter IV.pptx
CELL CYCLE Division Science 8 quarter IV.pptxJiesonDelaCerna
 
Full Stack Web Development Course for Beginners
Full Stack Web Development Course  for BeginnersFull Stack Web Development Course  for Beginners
Full Stack Web Development Course for BeginnersSabitha Banu
 

Recently uploaded (20)

Computed Fields and api Depends in the Odoo 17
Computed Fields and api Depends in the Odoo 17Computed Fields and api Depends in the Odoo 17
Computed Fields and api Depends in the Odoo 17
 
Organic Name Reactions for the students and aspirants of Chemistry12th.pptx
Organic Name Reactions  for the students and aspirants of Chemistry12th.pptxOrganic Name Reactions  for the students and aspirants of Chemistry12th.pptx
Organic Name Reactions for the students and aspirants of Chemistry12th.pptx
 
EPANDING THE CONTENT OF AN OUTLINE using notes.pptx
EPANDING THE CONTENT OF AN OUTLINE using notes.pptxEPANDING THE CONTENT OF AN OUTLINE using notes.pptx
EPANDING THE CONTENT OF AN OUTLINE using notes.pptx
 
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
 
ECONOMIC CONTEXT - LONG FORM TV DRAMA - PPT
ECONOMIC CONTEXT - LONG FORM TV DRAMA - PPTECONOMIC CONTEXT - LONG FORM TV DRAMA - PPT
ECONOMIC CONTEXT - LONG FORM TV DRAMA - PPT
 
Roles & Responsibilities in Pharmacovigilance
Roles & Responsibilities in PharmacovigilanceRoles & Responsibilities in Pharmacovigilance
Roles & Responsibilities in Pharmacovigilance
 
Earth Day Presentation wow hello nice great
Earth Day Presentation wow hello nice greatEarth Day Presentation wow hello nice great
Earth Day Presentation wow hello nice great
 
Types of Journalistic Writing Grade 8.pptx
Types of Journalistic Writing Grade 8.pptxTypes of Journalistic Writing Grade 8.pptx
Types of Journalistic Writing Grade 8.pptx
 
AmericanHighSchoolsprezentacijaoskolama.
AmericanHighSchoolsprezentacijaoskolama.AmericanHighSchoolsprezentacijaoskolama.
AmericanHighSchoolsprezentacijaoskolama.
 
Meghan Sutherland In Media Res Media Component
Meghan Sutherland In Media Res Media ComponentMeghan Sutherland In Media Res Media Component
Meghan Sutherland In Media Res Media Component
 
Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝
 
Hierarchy of management that covers different levels of management
Hierarchy of management that covers different levels of managementHierarchy of management that covers different levels of management
Hierarchy of management that covers different levels of management
 
Historical philosophical, theoretical, and legal foundations of special and i...
Historical philosophical, theoretical, and legal foundations of special and i...Historical philosophical, theoretical, and legal foundations of special and i...
Historical philosophical, theoretical, and legal foundations of special and i...
 
Introduction to ArtificiaI Intelligence in Higher Education
Introduction to ArtificiaI Intelligence in Higher EducationIntroduction to ArtificiaI Intelligence in Higher Education
Introduction to ArtificiaI Intelligence in Higher Education
 
MARGINALIZATION (Different learners in Marginalized Group
MARGINALIZATION (Different learners in Marginalized GroupMARGINALIZATION (Different learners in Marginalized Group
MARGINALIZATION (Different learners in Marginalized Group
 
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptx
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptxECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptx
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptx
 
Framing an Appropriate Research Question 6b9b26d93da94caf993c038d9efcdedb.pdf
Framing an Appropriate Research Question 6b9b26d93da94caf993c038d9efcdedb.pdfFraming an Appropriate Research Question 6b9b26d93da94caf993c038d9efcdedb.pdf
Framing an Appropriate Research Question 6b9b26d93da94caf993c038d9efcdedb.pdf
 
Crayon Activity Handout For the Crayon A
Crayon Activity Handout For the Crayon ACrayon Activity Handout For the Crayon A
Crayon Activity Handout For the Crayon A
 
CELL CYCLE Division Science 8 quarter IV.pptx
CELL CYCLE Division Science 8 quarter IV.pptxCELL CYCLE Division Science 8 quarter IV.pptx
CELL CYCLE Division Science 8 quarter IV.pptx
 
Full Stack Web Development Course for Beginners
Full Stack Web Development Course  for BeginnersFull Stack Web Development Course  for Beginners
Full Stack Web Development Course for Beginners
 

Creating Windows-based Applications Part-I

  • 1. ;` C#Zone Week 10(according to IUB outline):- --------------------------------------------------------------------------------- 10. Creating Windows-based Applications Part-I Designing Forms: Using Common Controls, Using Container Controls, Creating Multiple Document Interface (MDI) applications. Creating and using Main Menu, Toolbars, and Status Bar. Creating and Using Common Dialog Boxes, Creating and Using Custom Dialog Boxes. --------------------------------------------------------------------------------- Any issue:umarfarooqworld@outlook.com
  • 2. Ref: guru99.com Pick “N” Share :C#Zone 2 | P a g e “A room without books is like a body without a soul” C# Windows Forms Application So far we have seen how to work with C# to create console based applications. But in a real life scenario teams normally use Visual Studio and C# to create either Windows Forms or Web-based applications. A windows form application is any application, which is designed to run on a computer. It will not run on web browser because then it becomes a web application. This chapter will focus on how we can create Windows-based applications. We will also learn some basics on how to work with the various elements of Windows applications. In this tutorial, you will learn- Windows Forms Basics Hello World in Windows Forms Adding Controls to a form Event Handling for Controls Other Controls Windows Forms Basics A Windows forms application is one that runs on the desktop computer. A Windows forms application will normally have a collection of controls such as labels, textboxes, list boxes, etc. Below is an example of a simple Windows form application. It shows a simple Login screen, which is accessible by the user. The user will enter the required credentials and then will click the Login button to proceed.
  • 3. Ref: guru99.com Pick “N” Share :C#Zone 3 | P a g e “A room without books is like a body without a soul” So an example of the controls available in the above application 1. This is a collection of label controls which are normally used to describe adjacent controls. So in our case, we have 2 textboxes, and the labels are used to tell the user that one textbox is for entering the user name and the other for the password. 2. The 2 textboxes are used to hold the username and password which will be entered by the user. 3. Finally, we have the button control. The button control will normally have some code attached to perform a certain set of actions. So for example in the above case, we could have the button perform an action of validating the user name and password which is entered by the user. C# Hello World Now let's look at an example of how we can implement a simple 'hello world' application in Visual Studio. For this, we would need to implement the below-mentioned steps Step 1) The first step involves the creation of a new project in Visual Studio. After launching Visual Studio, you need to choose the menu option New->Project.
  • 4. Ref: guru99.com Pick “N” Share :C#Zone 4 | P a g e “A room without books is like a body without a soul” Step 2) The next step is to choose the project type as a Windows Forms application. Here we also need to mention the name and location of our project. x 1. In the project dialog box, we can see various options for creating different types of projects in Visual Studio. Click the Windows option on the left-hand side. 2. When we click the Windows options in the previous step, we will be able to see an option for Windows Forms Application. Click this option. 3. We then give a name for the application which in our case is DemoApplication. We also need to provide a location to store our application. 4. Finally, we click the 'OK' button to let Visual Studio to create our project. If the above steps are followed, you will get the below output in Visual Studio. Output:-
  • 5. Ref: guru99.com Pick “N” Share :C#Zone 5 | P a g e “A room without books is like a body without a soul” You will actually see a Form Designer displayed in Visual Studio. It's on this Form Designer that you will start building your Windows Forms application. In the Solution explorer, you will also be able to see the DemoApplication Solution. This solution will contain the below 2 project files 1. A Form application called Forms1.cs. This file will contain all of the code for the Windows Form application. 2. The Main program called Program.cs is default code file which is created when a new application is created in Visual Studio. This code will contain the startup code for the application as a whole. On the left-hand side of Visual Studio, you will also see a ToolBox. The toolbox contains all the controls which can be added to a Windows Forms. Controls like a text box or a label are just some of the controls which can be added to a Windows Forms. Below is a screenshot of how the Toolbox looks like.
  • 6. Ref: guru99.com Pick “N” Share :C#Zone 6 | P a g e “A room without books is like a body without a soul” Step 3) In this step, we will now add a label to the Form which will display "Hello World." From the toolbox , you will need to choose the Label control and simply drag it onto the Form.
  • 7. Ref: guru99.com Pick “N” Share :C#Zone 7 | P a g e “A room without books is like a body without a soul” Once you drag the label to the form, you can actually see the label embedded on the form as shown below. Step 4) The next step is to actually go to the properties of the control and Change the text to 'Hello World'. To go to the properties of control, you need to right-click the control and choose the Properties menu option
  • 8. Ref: guru99.com Pick “N” Share :C#Zone 8 | P a g e “A room without books is like a body without a soul” ď‚· The properties panel also shows up in Visual Studio. So for the label control, in the properties control, go to the Text section and enter "Hello World". ď‚· Each Control has a set of properties which describe the control. If you follow all of the above steps and run your program in Visual Studio, you will get the following output Output:-
  • 9. Ref: guru99.com Pick “N” Share :C#Zone 9 | P a g e “A room without books is like a body without a soul” In the output, you can clearly see that the Windows Form is displayed. You can also see 'Hello World' is displayed on the form. Adding Controls to a form We had already seen how to add a control to a form when we added the label control in the earlier section to display "Hello World." Let's look at the other controls available for Windows forms and see some of their common properties. In our example, we will create one form which will have the following functionality. 1. The ability for the user to enter name and address. 2. An option to choose the city in which the user resides in 3. The ability for the user to enter an option for the gender. 4. An option to choose a course which the user wants to learn. There will choices for both C# and ASP.Net So let's look at each control in detail and add them to build the form with the above-mentioned functionality. Group Box – A group box is used for grouping logical controls into a section. Let's take an example, if you had a collection of controls for entering details such as name and address of a person. Ideally, these are details of a person, so you would want to have these details in a separate section on the Form. For this purpose, you can have a group box. Let's see how we can implement this with an example shown below Step 1) The first step is to drag the Groupbox control onto the Windows Form from the toolbox as shown below
  • 10. Ref: guru99.com Pick “N” Share :C#Zone 10 | P a g e “A room without books is like a body without a soul” Step 2) Once the groupbox has been added, go to the properties window by clicking on the groupbox control. In the properties window, go to the Text property and change it to "User Details". One you make the above changes, you will see the following output Output:-
  • 11. Ref: guru99.com Pick “N” Share :C#Zone 11 | P a g e “A room without books is like a body without a soul” In the output, you can clearly see that the Groupbox was added to the form. You can also see that the text of the groupbox was changed to "User Details." Label Control – Next comes the Label Control. The label control is used to display a text or a message to the user on the form. The label control is normally used along with other controls. Common examples is wherein a label is added along with the textbox control. The label gives an indication to the user on what is expected to fill up in the textbox. Let's see how we can implement this with an example shown below. We will add 2 labels, one which will be called 'name' and the other called 'address.' They will be used in conjunction with the textbox controls which will be added in the later section. Step 1) The first step is to drag the label control on to the Windows Form from the toolbox as shown below. Make sure you drag the label control 2 times so that you can have one for the 'name' and the other for the 'address'. Step 2) Once the label has been added, go to the properties window by clicking on the label control. In the properties window, go to the Text property of each label control.
  • 12. Ref: guru99.com Pick “N” Share :C#Zone 12 | P a g e “A room without books is like a body without a soul” One you make the above changes, you will see the following output Output:- You can actually see the label controls added to the form. ď‚· Textbox – A textbox is used for allowing a user to enter some text on the forms application. Let's see how we can implement this with an example shown below. We will add 2 textboxes to the form , one for the Name and the other for the address to be entered for the user Step 1) The first step is to drag the textbox control onto the Windows Form from the toolbox as shown below
  • 13. Ref: guru99.com Pick “N” Share :C#Zone 13 | P a g e “A room without books is like a body without a soul” Step 2) Once the text boxes have been added, go to the properties window by clicking on the textbox control. In the properties window, go to the Name property and add a meaningful name to each textbox. For example, name the textbox for the user as txtUser and that for the address as txtAddress. A naming convention and standard should be made for controls because it becomes easier to add extra functionality to these controls, which we will see later on. One you make the above changes, you will see the following output Output:-
  • 14. Ref: guru99.com Pick “N” Share :C#Zone 14 | P a g e “A room without books is like a body without a soul” In the output, you can clearly see that the Textboxes was added to the form. List box – A Listbox is used to showcase a list of items on the Windows form. Let's see how we can implement this with an example shown below. We will add a list box to the form to store some city locations. Step 1) The first step is to drag the list box control onto the Windows Form from the toolbox as shown below Step 2) Once the list box has been added, go to the properties window by clicking on the list box control. 1. First, change the property of the Listbox box control , in our case we have changed this to lstCity 2. Click on the Items property. This will allow you to add different items which can show up in the list box. In our case, we have selected items "collection". 3. In the String Collection Editor, which pops up, enter the city names. In our case, we have entered "Mumbai", "Bangalore" and "Hyderabad". 4. Finally, click on the 'OK' button.
  • 15. Ref: guru99.com Pick “N” Share :C#Zone 15 | P a g e “A room without books is like a body without a soul” One you make the above changes, you will see the following output Output:- In the output, you can clearly see that the Listbox was added to the form. You can also see that the list box has been populated with the city values. RadioButton - A Radiobutton is used to showcase a list of items out of which the user can choose one. Let's see how we can implement this with an example shown below. We will add a radio button for a male/female option. Step 1) The first step is to drag the 'radiobutton' control onto the Windows Form from the toolbox as shown below.
  • 16. Ref: guru99.com Pick “N” Share :C#Zone 16 | P a g e “A room without books is like a body without a soul” Step 2) Once the Radiobutton has been added, go to the properties window by clicking on the Radiobutton control. 1. First, you need to change the text property of both Radio controls. Go the properties windows and change the text to male of one radiobutton and the text of the other to female. 2. Similarly, change the name property of both Radio controls. Go the properties windows and change the name to 'rdMale' of one radiobutton and to 'rdfemale' for the other one. One you make the above changes, you will see the following output Output:-
  • 17. Ref: guru99.com Pick “N” Share :C#Zone 17 | P a g e “A room without books is like a body without a soul” You will see the Radio buttons added to the Windows form. Checkbox - A checkbox is used to provide a list of options in which the user can choose multiple choices. Let's see how we can implement this with an example shown below. We will add 2 checkboxes to our Windows forms. These checkboxes will provide an option to the user on whether they want to learn C# or ASP.Net. Step 1) The first step is to drag the checkbox control onto the Windows Form from the toolbox as shown below Step 2) Once the checkbox has been added, go to the properties window by clicking on the Checkbox control.
  • 18. Ref: guru99.com Pick “N” Share :C#Zone 18 | P a g e “A room without books is like a body without a soul” In the properties window, 1. First, you need to change the text property of both checkbox controls. Go the properties windows and change the text to C# and ASP.Net. 2. Similarly, change the name property of both Radio controls. Go the properties windows and change the name to chkC of one checkbox and to chkASP for the other one. One you make the above changes, you will see the following output Output:- Button - A button is used to allow the user to click on a button which would then start the processing of the form. Let's see how we can implement this with an example shown below. We will add a simple button called 'Submit' which will be used to submit all the information on the form. Step 1) The first step is to drag the button control onto the Windows Form from the toolbox as shown below
  • 19. Ref: guru99.com Pick “N” Share :C#Zone 19 | P a g e “A room without books is like a body without a soul” Step 2) Once the Button has been added, go to the properties window by clicking on the Button control. 1. First, you need to change the text property of the button control. Go the properties windows and change the text to 'submit'. 2. Similarly, change the name property of the control. Go the properties windows and change the name to 'btnSubmit'. One you make the above changes, you will see the following output
  • 20. Ref: guru99.com Pick “N” Share :C#Zone 20 | P a g e “A room without books is like a body without a soul” Output:- Congrats, you now have your first basic Windows Form in place. Let's now go to the next topic to see how we can do Event handling for Controls. C# Event Handling for Controls When working with windows form, you can add events to controls. An event is something that happens when an action is performed. Probably the most common action is the clicking of a button on a form. In Windows forms , you can add code which can be used to perform certain actions when a button is pressed on the form. Normally when a button is pressed on a form, it means that some processing should take place. Let's take a look at one of the event and how it can be handled before we go onto the button event scenario. The below example will showcase an event for the Listbox control. So whenever an item is selected in the listbox control, a message box should pop up which shows the item selected. Let's perform the following steps to achieve this. Step 1) Double click on the Listbox in the form designer. By doing this, Visual Studio will automatically open up the code file for the form. And it will automatically add an event method to the code. This event method will be triggered, whenever any item in the listbox is selected.
  • 21. Ref: guru99.com Pick “N” Share :C#Zone 21 | P a g e “A room without books is like a body without a soul” Above is the snippet of code which is automatically added by Visual Studio, when you double- click the List box control on the form. Now let's add the below section of code to this snippet of code, to add the required functionality to the listbox event. 1. This is the event handler method which is automatically created by Visual Studio when you double-click the List box control. You don't need to worry about the complexity of the method name or the parameters passed to the method. 2. Here we are getting the SelectedItem through the lstCity.SelectedItem property. Remember that lstCity is the name of our Listbox control. We then use the GetItemText method to get the actual value of the selected item. We then assign this value to the text variable. 3. Finally, we use the MessageBox method to display the text variable value to the user. One you make the above changes, and run the program in Visual Studio you will see the following output Output:-
  • 22. Ref: guru99.com Pick “N” Share :C#Zone 22 | P a g e “A room without books is like a body without a soul” From the output, you can clearly see that when any item from the list box is selected, a message box will pops up. This will show the selected item from the listbox. Now let's look at the final control which is the button click Method. Again this follows the same philosophy. Just double click the button in the Forms Designer and it will automatically add the method for the button event handler. Then you just need to add the below code. 1. This is the event handler method which is automatically created by Visual Studio when you double click the button control. You don't need to worry on the complexity of the method name or the parameters passed to the method. 2. Here we are getting values entered in the name and address textbox. The values can be taken from the text property of the textbox. We then assign the values to 2 variables, name, and address accordingly. 3. Finally, we use the MessageBox method to display the name and address values to the user. One you make the above changes, and run the program in Visual Studio you will see the following output Output:-
  • 23. Ref: guru99.com Pick “N” Share :C#Zone 23 | P a g e “A room without books is like a body without a soul” 1. First, enter a value in the name and address field. 2. Then click on the Submit button Once you click the Submit button , a message box will pop, and it will correctly show you what you entered in the user details section. Other Controls There are 2 further controls we can look at, one is the 'Tree Control' and the other is the 'Image control'. Let's look at examples of how we can implement these controls ď‚· TreeControl – The tree control is used to list down items in a tree like fashion. Probably the best example is when we see the Windows Explorer itself. The folder structure in Windows explorer is like a tree like structure. Let's see how we can implement this with an example shown below. Step 1) The first step is to drag the Tree control onto the Windows Form from the toolbox as shown below Step 2) The next step is start adding nodes to the tree collection so that it can come up in the tree accordingly. First, let's follow the below sub-steps to add a root node to the tree collection.
  • 24. Ref: guru99.com Pick “N” Share :C#Zone 24 | P a g e “A room without books is like a body without a soul” 1. Go to the properties toolbox for the tree view control. Click on the Node's property. This will bring up the TreeNode Editor 2. In the TreeNode Editor click on the Add Root button to add a root node to the tree collection. 3. Next, change the text of the Root node and provide the text as Root and click 'OK' button. This will add Root node. Step 3) The next step is start adding the child nodes to the tree collection. Let's follow the below sub-steps to add child root node to the tree collection. 1. First, click on the Add child button. This will allow you to add child nodes to the Tree collection. 2. For each child node, change the text property. Keep on repeating the previous step and this step and add 2 additional nodes. In the end, you will have 3 nodes as shown above, with the text as Label, Button, and Checkbox respectively. 3. Click on the OK button Once you have made the above changes, you will see the following output. Output:-
  • 25. Ref: guru99.com Pick “N” Share :C#Zone 25 | P a g e “A room without books is like a body without a soul” You will actually be able to see the Tree view added to the form. When you run the Windows form application, you can expand the root node and see the child nodes in the list. ď‚· PictureBox Control – This control is used to add images to the Windows Forms. Let's see how we can implement this with an example shown below. Step 1) The first step is to drag the PictureBox control onto the Windows Form from the toolbox as shown below Step 2) The next step is to actually attach an image to the picture box control. This can be done by following the below steps.
  • 26. Ref: guru99.com Pick “N” Share :C#Zone 26 | P a g e “A room without books is like a body without a soul” 1. First, click on the Image property for the PictureBox control. A new window will pops out. 2. In this window, click on the Import button. This will be used to attach an image to the picturebox control. 3. A dialog box will pop up in which you will be able to choose the image to attach the picturebox 4. Click on the OK button One you make the above changes, you will see the following output Output:- From the output, you can clearly see that an image is displayed on the form. Summary ď‚· A Windows forms application is one that runs on the desktop of a computer. Visual Studio along with C# can be used to create a Windows Forms application. ď‚· Controls can be added to the Windows forms via the Toolbox in Visual Studio. Controls such as labels , checkboxes , radio buttons, etc. can be added to the form via the toolbox. ď‚· One can also use advanced controls like the treeview control and the picturebox control. ď‚· Event handlers are used to respond to events generated from controls. The most common one is the one added for the button clicked event.
  • 27. Ref: guru99.com Pick “N” Share :C#Zone 27 | P a g e “A room without books is like a body without a soul” Find factorial of a number?? using System; using System.Windows.Forms; namespace picknshare { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void txtResult_TextChanged(object sender, EventArgs e) { } private void label1_Click(object sender, EventArgs e) { } private void label2_Click(object sender, EventArgs e) { } private void Form1_Load(object sender, EventArgs e) { MessageBox.Show("Lets's start with Pick N Share!"); } private void txt1_TextChanged(object sender, EventArgs e) { } private void btn_Click(object sender, EventArgs e) { int num = Convert.ToInt32(txt1.Text); int fact = 1; int i=1; while(i<=num) { fact = fact * i; i++; } txtResult.Text = Convert.ToString(fact); } } } When loading of form..
  • 28. Ref: guru99.com Pick “N” Share :C#Zone 28 | P a g e “A room without books is like a body without a soul” Creating Multiple Document Interface (MDI) applications. Firstly, create a project: After this, a form will be generated automatically as form1:
  • 29. Ref: guru99.com Pick “N” Share :C#Zone 29 | P a g e “A room without books is like a body without a soul” Right click on project name (picknshare) and add new windows form2.
  • 30. Ref: guru99.com Pick “N” Share :C#Zone 30 | P a g e “A room without books is like a body without a soul” Drag a button on form 1. Right click on Button and select property.
  • 31. Ref: guru99.com Pick “N” Share :C#Zone 31 | P a g e “A room without books is like a body without a soul” Write button name . Write button text.
  • 32. Ref: guru99.com Pick “N” Share :C#Zone 32 | P a g e “A room without books is like a body without a soul” Double click on button that is placed on form 1. And this button’s click event generated then write down some coding to open form 2 within form 1 when click on this button. 1. Create form2’s object. 2. Show() method called to open form. 3. Mdiparent means this form 2 is open, within the boundary of form 1. Now run program and click on button.. Following window will be shows.
  • 33. Ref: guru99.com Pick “N” Share :C#Zone 33 | P a g e “A room without books is like a body without a soul” C# Menu Control A Menu on a Windows Form is created with a MainMenu object, which is a collection of MenuItem objects. MainMenu is the container for the Menu structure of the form and menus are made of MenuItem objects that represent individual parts of a menu. You can add menus to Windows Forms at design time by adding the MainMenu component and then appending menu items to it using the Menu Designer. After drag the Menustrip on your form you can directly create the menu items by type a value into the "Type Here" box on the menubar part of your form. From the following picture you can understand how to create each menu items on mainmenu Object.
  • 34. Ref: guru99.com Pick “N” Share :C#Zone 34 | P a g e “A room without books is like a body without a soul” If you need a seperator bar , right click on your menu then go to insert- >Seperator.
  • 35. Ref: guru99.com Pick “N” Share :C#Zone 35 | P a g e “A room without books is like a body without a soul” After creating the Menu on the form , you have to double click on each menu item and write the programs there depends on your requirements. The following C# program shows how to show a messagebox when clicking a Menu item. using System; using System.Drawing; using System.Windows.Forms; namespace WindowsFormsApplication1 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void menu1ToolStripMenuItem_Click(object sender, EventArgs e) { MessageBox.Show("You are selected MenuItem_1"); } } } Combo box 1.Drag combo box from toolbox and drop on form. 2. Drag text box from toolbox and drop on form. 3.Drag button from toolbox and drop on form for add item in the combo box by text box. 4.Drag button from toolbox and drop on form for reset combo box. 5.Drag button and text box from toolbox and drop on form for count items in the combo box and display on the above textbox.
  • 36. Ref: guru99.com Pick “N” Share :C#Zone 36 | P a g e “A room without books is like a body without a soul”
  • 37. Ref: guru99.com Pick “N” Share :C#Zone 37 | P a g e “A room without books is like a body without a soul”
  • 38. Ref: guru99.com Pick “N” Share :C#Zone 38 | P a g e “A room without books is like a body without a soul” Custom Dialog Box Many of the posts I write for this column come directly from common things I see being asked in the community. That community might be Lidnug, it might be Stack Overflow, Code Project, or many of the small, obscure forum and help sites. The point here is, there are questions that I see over and over again, and one of them undoubtedly is the: "How do I create a message box with a text input on it?" Many of you might be thinking, "Well, that's easy. I can do that no problem." But, to many beginners, and even some that who been in the industry for some time, it might come as a surprise that the stock answer is: "Use the "Microsoft.VisualBasic.Interaction" namespace. There's a method called "InputBox" that will do what you need." This stack overflow post is a perfect example: Now, I don't know about you, but if I'm working in C# (which I do 99% of the time), I really don't like the idea of importing something that's specific to VB.NET. I know that at the end of the day, they're all just compiled assemblies, but stop and ask yourself this question: If they are all just compiled assemblies, why did the language designers feel that this input box should be made available only to VB.NET in its runtime, and not globally in the base .NET libraries? Well, I can't answer that question directly for you, but I can answer it in my own way. A Better Way? Absolutely. Remember, you're dealing with Windows Forms and strongly typed objects here. You can encapsulate things in C# in ways you can't (or are difficult to do) in Visual Basic. Now at this point, yes I realise I'm going to get the VB Zealots baying for my blood because I've dared say something negative about the VB Language, but In my own opinion (not representative of anyone else's), this is the case that I've always found, time & time again. So how can we do things better? Well, let's start by firing up Visual Studio, and creating a new Windows Forms application. I'll not repeat the steps for that, as it's fairly easy. If you've done this correctly, you should be greeted with a bare WinForms app that looks something like this:
  • 39. Ref: guru99.com Pick “N” Share :C#Zone 39 | P a g e “A room without books is like a body without a soul” By default, Visual Studio will have created a main form for you, and set up all the assemblies you need to develop a desktop application in .NET. At this point, if you were following the advice in the stack overflow post, you'd use the references section to find the Visual Basic stubs you need and import them, making the VB text input available to use. We, however, are going to do things a little differently. Right-click your WinForms project, and add a new Windows Form. You can call it what you like, but I've called mine 'MessageDialog'. We'll start by making it into a very simple 'MessageBox' replacement. In the properties for the new form, set "FormBorder" to "FixedDialog"; set "MaximizeBox" to "False"; set "MinimizeBox" to "False"; and set "StartPosition" to "CenterScreen". Drag your form size for the new form, out to an average size message box, and then place a label and a button on it. Give the Label an recognizable name (such as MessageText), and the button a name such as "OkButton", set the label's "AutoSize" property to "False", and then stretch it out so that it fills the main part of your dialog box, then set its "TextAlign" property to "MiddleCentre". Back in the Form Properties, set the "AcceptButton" and "CancelButton" property to the name you gave your "Ok Button". Set the text on the button to "Ok" and line it up in the bottom centre of your dialog.MessageDialog form. You should have something that looks like this Press F7 to switch to the code view for your Dialog, and just below the constructor, add the following method. 1. public DialogResult Show(string title, string messageText) 2. { 3. Text = title; 4. MessageText.Text = messageText; 5. return (ShowDialog()); 6. }
  • 40. Ref: guru99.com Pick “N” Share :C#Zone 40 | P a g e “A room without books is like a body without a soul” Now, switch back to your initial form, add a button to that, double-click the button, and then add the following code into the button handler. 1. private void button1_Click(object sender, EventArgs e) 2. { 3. MessageDialog messageDialog = new MessageDialog(); 4. messageDialog.Show("My Message", 5. "This is my custom message dialog"); 6. } Press F5 to run the program, and, when you click the button, you should see your custom dialog. It should behave just like the normal message box one. At this point, hopefully you can see now that's your not that far away from adding multiple button sets and Icon sets just like the built-in MessageBox functionality. You could also make the entire class a static class, meaning you don't need to "new the object up"; you can just use it the same way as the built-in MessageBox. I leave all of that to you, however. For this one, we're going to extend it to behave like the Visual Basic Input Box. If you look up the documentation for the VB input box, you'll see the following information. 1. public static string InputBox( 2. string Prompt, 3. string Title, 4. string DefaultResponse, 5. int XPos, 6. int YPos 7. ) The method call takes five parameters, the first of which, "Prompt," is required. The rest are optional. Note also that the Input box is static too; we'll not be making this one static, but if you 100% wanted to be true, you could do so easily. Looking at an image of the Visual Basic input box, it has an OK & Cancel button to the top right, space for a question to the top left, and a text input all the way along the bottom. Make the changes to your MessageDialog form to reflect this. Mine now looks like the following: Figure 4: The revised MessageDialog form The label is called "MessageText", the buttons are "OkButton" and "CancelButton", and the text input box is called "TextInput". To make the calling structure the same as the original Visual Basic one, we also need to implement a method with the five parameters shown in the previous code snippet. If you read the documentation on those parameters on MSDN, it has the following to say: ď‚· Prompt: String, Required - The text to display in the message on the dialog approx 1024 chars in length. ď‚· Title: String, Optional - Title to be shown on the dialog, defaults to application name if not provided. ď‚· DefaultResponse: String, Optional - Response to return if the user does not enter anything in the box but still presses OK. ď‚· Xpos/Ypos: Integer, Optional - The distance the upper left corner of the dialog is from the upper left corner of the screen, defaults to middle and approx one third down if omitted.
  • 41. Ref: guru99.com Pick “N” Share :C#Zone 41 | P a g e “A room without books is like a body without a soul” This means our method might look something like this: 1. public string InputBox(string Prompt , string Title = "", 2. string DefaultResponse = "", int Xpos = 0, int Ypos = 0) 3. { 4. MessageText.Text = Prompt; 5. Text = String.IsNullOrEmpty(Title) ? 6. Application.ProductName : Title; 7. 8. if (Xpos != 0) Left = Xpos; 9. if (Ypos != 0) Top = Ypos; 10. 11. var resultCode = ShowDialog(); 12. if(resultCode == DialogResult.OK) 13. { 14. if(String.IsNullOrEmpty(TextInput.Text)) 15. { 16. return DefaultResponse; 17. } 18. return TextInput.Text; 19. } 20. 21. return String.Empty; 22. } A few changes to the properties on your InputForm are also needed as follows: Change the "DialogResult" property of your "OkButton" to "Ok", and the "DIalogResult" property on the "CancelButton" to "Cancel". Make sure that the "AcceptButton" property of the form is "OkButton" (or whatever name you gave your OK button), and make sure the "CancelButton" property is the name of your "CancelButton". Once you make these changes, and update the code in your main form to call the new method. If all goes correctly when you press F5, you should be greeted with the following: At this point, you should be able to click OK or Cancel and get the same return values as per the Visual Basic version, but you should also be able to see how much extra flexibility and potential you have for expansion. You could, for example, create a dialog that has a drop-down on it, or even create a new type of open/save dialog.