Custom Control Tutorial

Size: px
Start display at page:

Download "Custom Control Tutorial"

Transcription

1 Custom Control Tutorial Program: Woei-Kae Chen Text/Picture: Spirit Du 24 December, 2013, Ver Contents About this Document... 1 Tutorial Creating Custom Control... 2 About this Document In the homework, moving graphic objects is required like other drawing tools. There are many ways to achieve the goal. Two common ways are: (1) handling all the mouse events from the form and then calculating everything, e.g. mouse locations, object locations, or others, by yourself, and (2) using custom control to be as graphic object. In this tutorial, the goal is to build an EllipseControl, a custom control, which is by itself selectable and movable. Creating custom control is not difficult. Figure 1 shows the classes to be implemented in this tutorial. You may try to implement LineControl, and RectangleControl by yourself. TutorialForm to display graphic objects EllipseControl new ellipse graphic object using custom control method MovableControl abstracted from all movable graphic objects Figure 1 Class Diagram in this tutorial Windows Programming Tutorial Custom Control, fly me to the moon - 1-

2 Tutorial Creating Custom Control Step1. Create a new empty project, named as CustomControl. In the empty project, add the following references: System, System.Data, System.Drawing, and System.Windows.Forms. Figure 2 Four references Step2. Create a new class: EllipseControl In the solution explorer, click the right mouse key on project, and then create a new class, named as EllipseControl.cs. In the created class, fill the following codes: using System; using System.Collections.Generic; using System.Windows.Forms; using System.Drawing; using System.Drawing.Drawing2D; namespace CustomControl { class EllipseControl : Control { public EllipseControl() { SetStyle(ControlStyles.DoubleBuffer, true); SetStyle(ControlStyles.UserPaint, true); SetStyle(ControlStyles.AllPaintingInWmPaint, true); protected override void OnPaint(PaintEventArgs e) { base.onpaint(e); e.graphics.fillellipse(new SolidBrush(BackColor), 0, 0, Width - 1, Height - 1); e.graphics.drawellipse(new Pen(ForeColor, 2), 0, 0, Width - 1, Height - 1); Windows Programming Tutorial Custom Control, fly me to the moon - 2-

3 Step3. Create a TutorialForm Because that the tutorial is created from an empty project, it is need to create a form to display the custom controls. Add a class: TutorialFrom.cs into the project. using System; using System.Collections.Generic; using System.Text; using System.Windows.Forms; namespace CustomControl { class TutorialForm : Form { public TutorialForm() { Text = "Custom control tutorial"; BackColor = Color.White; Size = new Size(640, 480); SetStyle(ControlStyles.DoubleBuffer, true); SetStyle(ControlStyles.UserPaint, true); SetStyle(ControlStyles.AllPaintingInWmPaint, true); for (int i = 0; i < 5; i++) { EllipseControl sc = new EllipseControl(); sc.location = new Point(i * , 10); sc.size = new Size(110, 110); sc.backcolor = Color.Yellow; sc.forecolor = Color.Blue; sc.parent = this; Step4. Create a startup entry. There is no startup entry, main() function, when the empty project is initialized so that create a class: Program.cs and then filled the following codes and execute the project. Windows Programming Tutorial Custom Control, fly me to the moon - 3-

4 Figure 3 All classes created until now using System; using System.Windows.Forms; namespace CustomControl { class Program { static void Main(string[] args) { Application.Run(new TutorialForm()); Figure 4 Five ellipse controls Step5. Change the cursor when mouse entered Now, there are five ellipse controls in the form (Figure 4). But the user doesn t know they are controls. In order to indicate the user, add a member function into EllipseControl. protected override void OnMouseEnter(EventArgs e) { base.onenter(e); Cursor = Cursors.SizeAll; Step6. Beautify the strange control Well, the ellipse control is real strange because of the yellow rectangle background and the cursor still changed although the mouse doesn t enter the actually ellipse region. Add two member functions in EllipseControl to solve the strange problem. Windows Programming Tutorial Custom Control, fly me to the moon - 4-

5 Figure 5 Not strange anymore private void SetRegion() { GraphicsPath path = new GraphicsPath(); path.fillmode = FillMode.Winding; path.addellipse(-1, -1, Width + 1, Height + 1); Region = new Region(path); protected override void OnResize(EventArgs e) { base.onresize(e); SetRegion(); Step7. States of EllipseControl Three properties are added into EllipseControl class to indicate three different states of control: selected, pressed, and moved. protected bool isselected = false; protected bool ispressed = false; protected bool ismoved = false; Step8. Interact with mouse events Add a new member function: onmousedown and modify two existing member functions: OnPaint, SetRegion to let the ellipse object can interact with other mouse events (Figure 6). protected override void OnMouseDown(MouseEventArgs e) { base.onmousedown(e); ispressed = true; SetRegion(); protected override void OnPaint(PaintEventArgs e) { base.onpaint(e); e.graphics.fillellipse(new SolidBrush(BackColor), 0, 0, Width - 1, Height - 1); Windows Programming Tutorial Custom Control, fly me to the moon - 5-

6 e.graphics.drawellipse(new Pen(ForeColor, 2), 0, 0, Width - 1, Height - 1); if (isselected ispressed) { Pen p = new Pen(Color.Green, 2); p.dashstyle = DashStyle.Dash; e.graphics.drawrectangle(p, 1, 1, Width - 2, Height - 2); private void SetRegion() { GraphicsPath path = new GraphicsPath(); path.fillmode = FillMode.Winding; if (isselected ispressed) { path.addrectangle(new Rectangle(0, 0, Width, 2)); path.addrectangle(new Rectangle(0, 0, 2, Height)); path.addrectangle(new Rectangle(0, Height - 2, Width, 2)); path.addrectangle(new Rectangle(Width - 2, 0, 2, Height)); path.addellipse(-1, -1, Width + 1, Height + 1); Region = new Region(path); Figure 6 A selected ellipse object Step9. No~ it can t lose focus... Good, the user can select an ellipse object but the selected object can t lose focus anymore. In order to solve the problem, add two member functions into EllipseControl: protected override void OnMouseUp(MouseEventArgs e) { base.onmouseup(e); ispressed = false; isselected = (ismoved)? true :!isselected; ismoved = false; SetRegion(); Windows Programming Tutorial Custom Control, fly me to the moon - 6-

7 protected override void OnMove(EventArgs e) { base.onmove(e); ismoved = true; Step10. Fly me to the moon... Okay, it looks good but not perfect enough. It is still unable to move ellipse controls! As shown in Figure 1, there still one class doesn t be added into the project. Add a new class: MoveableControl into the project and fill the following codes: using System; using System.Drawing; using System.Drawing.Drawing2D; using System.Windows.Forms; namespace CustomControl { class MoveableControl : Control { enum MoveState { Normal, MouseDown, Dragging ; Point MouseDownPoint; Rectangle dragbox = Rectangle.Empty; MoveState state = MoveState.Normal; protected override void OnMouseDown(MouseEventArgs e) { state = MoveState.MouseDown; MouseDownPoint = e.location; Size dragsize = SystemInformation.DragSize; dragbox = new Rectangle(new Point(e.X - (dragsize.width / 2), e.y - (dragsize.height / 2)), dragsize); protected override void OnMouseMove(MouseEventArgs e) { if (state == MoveState.MouseDown &&!dragbox.contains(e.x, e.y)) state = MoveState.Dragging; if (state == MoveState.Dragging) MoveControl(e); protected override void OnMouseUp(MouseEventArgs e) { if (state == MoveState.Dragging) MoveControl(e); state = MoveState.Normal; Windows Programming Tutorial Custom Control, fly me to the moon - 7-

8 private void MoveControl(MouseEventArgs e) { Location = new Point(Location.X MouseDownPoint.X + e.x, Location.Y - MouseDownPoint.Y + e.y); Step11. Sorry, this is the real last step! Why can t the ellipse controls be moved right now? Because that the MoveableControl is just an independent class and the EllipseControl should change its parent like the following code. Okay, the ellipse object is really able to be moved now... Fly me to the moon, EllipseControl said... class EllipseControl : MoveableControl {... End Tutorial Windows Programming Tutorial Custom Control, fly me to the moon - 8-

CALCULATOR APPLICATION

CALCULATOR APPLICATION CALCULATOR APPLICATION Form1.cs using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms;

More information

Class Test 5. Create a simple paint program that conforms to the following requirements.

Class Test 5. Create a simple paint program that conforms to the following requirements. Class Test 5 Question 1 Use visual studio 2012 ultimate to create a C# windows forms application. Create a simple paint program that conforms to the following requirements. The control box is disabled

More information

Chapter 6 Dialogs. Creating a Dialog Style Form

Chapter 6 Dialogs. Creating a Dialog Style Form Chapter 6 Dialogs We all know the importance of dialogs in Windows applications. Dialogs using the.net FCL are very easy to implement if you already know how to use basic controls on forms. A dialog is

More information

Engr 123 Spring 2018 Notes on Visual Studio

Engr 123 Spring 2018 Notes on Visual Studio Engr 123 Spring 2018 Notes on Visual Studio We will be using Microsoft Visual Studio 2017 for all of the programming assignments in this class. Visual Studio is available on the campus network. For your

More information

Ingegneria del Software T. Interfaccia utente

Ingegneria del Software T. Interfaccia utente Interfaccia utente Creating Windows Applications Typical windows-application design & development 1+ classes derived from System.Windows.Forms.Form Design UI with VisualStudio.NET Possible to do anything

More information

Tutorial - Hello World

Tutorial - Hello World Tutorial - Hello World Spirit Du Ver. 1.1, 25 th September, 2007 Ver. 2.0, 7 th September, 2008 Ver. 2.1, 15 th September, 2014 Contents About This Document... 1 A Hello Message Box... 2 A Hello World

More information

Visual Studio.NET.NET Framework. Web Services Web Forms Windows Forms. Data and XML classes. Framework Base Classes. Common Language Runtime

Visual Studio.NET.NET Framework. Web Services Web Forms Windows Forms. Data and XML classes. Framework Base Classes. Common Language Runtime Intro C# Intro C# 1 Microsoft's.NET platform and Framework.NET Enterprise Servers Visual Studio.NET.NET Framework.NET Building Block Services Operating system on servers, desktop, and devices Web Services

More information

Laboratorio di Ingegneria del Software

Laboratorio di Ingegneria del Software Laboratorio di Ingegneria del Software L-A Interfaccia utente System.Windows.Forms The System.Windows.Forms namespace contains classes for creating Windows-based applications The classes can be grouped

More information

Laboratorio di Ingegneria del L-A

Laboratorio di Ingegneria del L-A Software L-A Interfaccia utente System.Windows.Forms The System.Windows.Forms namespace contains classes for creating Windows-based applications The classes can be grouped into the following categories:

More information

Start Visual Studio, start a new Windows Form project under the C# language, name the project BalloonPop MooICT and click OK.

Start Visual Studio, start a new Windows Form project under the C# language, name the project BalloonPop MooICT and click OK. Start Visual Studio, start a new Windows Form project under the C# language, name the project BalloonPop MooICT and click OK. Before you start - download the game assets from above or on MOOICT.COM to

More information

You can call the project anything you like I will be calling this one project slide show.

You can call the project anything you like I will be calling this one project slide show. C# Tutorial Load all images from a folder Slide Show In this tutorial we will see how to create a C# slide show where you load everything from a single folder and view them through a timer. This exercise

More information

Course 2DCis: 2D-Computer Graphics with C# Chapter C1: Comments to the Intro Project

Course 2DCis: 2D-Computer Graphics with C# Chapter C1: Comments to the Intro Project 1 Course 2DCis: 2D-Computer Graphics with C# Chapter C1: Comments to the Intro Project Copyright by V. Miszalok, last update: 04-01-2006 using namespaces //The.NET Framework Class Library FCL contains

More information

Eyes of the Dragon - XNA Part 37 Map Editor Revisited

Eyes of the Dragon - XNA Part 37 Map Editor Revisited Eyes of the Dragon - XNA Part 37 Map Editor Revisited I'm writing these tutorials for the XNA 4.0 framework. Even though Microsoft has ended support for XNA it still runs on all supported operating systems

More information

Start Visual Studio, create a new project called Helicopter Game and press OK

Start Visual Studio, create a new project called Helicopter Game and press OK C# Tutorial Create a helicopter flying and shooting game in visual studio In this tutorial we will create a fun little helicopter game in visual studio. You will be flying the helicopter which can shoot

More information

Click on the empty form and apply the following options to the properties Windows.

Click on the empty form and apply the following options to the properties Windows. Start New Project In Visual Studio Choose C# Windows Form Application Name it SpaceInvaders and Click OK. Click on the empty form and apply the following options to the properties Windows. This is the

More information

Form Properties Window

Form Properties Window C# Tutorial Create a Save The Eggs Item Drop Game in Visual Studio Start Visual Studio, Start a new project. Under the C# language, choose Windows Form Application. Name the project savetheeggs and click

More information

Advanced Internet Programming CSY3020

Advanced Internet Programming CSY3020 Advanced Internet Programming CSY3020 Java Applets The three Java Applet examples produce a very rudimentary drawing applet. An Applet is compiled Java which is normally run within a browser. Java applets

More information

IBSDK Quick Start Tutorial for C# 2010

IBSDK Quick Start Tutorial for C# 2010 IB-SDK-00003 Ver. 3.0.0 2012-04-04 IBSDK Quick Start Tutorial for C# 2010 Copyright @2012, lntegrated Biometrics LLC. All Rights Reserved 1 QuickStart Project C# 2010 Example Follow these steps to setup

More information

First start a new Windows Form Application from C# and name it Interest Calculator. We need 3 text boxes. 4 labels. 1 button

First start a new Windows Form Application from C# and name it Interest Calculator. We need 3 text boxes. 4 labels. 1 button Create an Interest Calculator with C# In This tutorial we will create an interest calculator in Visual Studio using C# programming Language. Programming is all about maths now we don t need to know every

More information

Course 2DCis: 2D-Computer Graphics with C# Chapter C1: The Intro Project

Course 2DCis: 2D-Computer Graphics with C# Chapter C1: The Intro Project 1 Course 2DCis: 2D-Computer Graphics with C# Chapter C1: The Intro Project Copyright by V. Miszalok, last update: 09-12-2007 An empty window DrawString: Hallo World Print window size with color font Left,

More information

Create your own Meme Maker in C#

Create your own Meme Maker in C# Create your own Meme Maker in C# This tutorial will show how to create a meme maker in visual studio 2010 using C#. Now we are using Visual Studio 2010 version you can use any and still get the same result.

More information

Now find the button component in the tool box. [if toolbox isn't present click VIEW on the top and click toolbox]

Now find the button component in the tool box. [if toolbox isn't present click VIEW on the top and click toolbox] C# Tutorial - Create a Tic Tac Toe game with Working AI This project will be created in Visual Studio 2010 however you can use any version of Visual Studio to follow along this tutorial. To start open

More information

Developing for Mobile Devices Lab (Part 1 of 2)

Developing for Mobile Devices Lab (Part 1 of 2) Developing for Mobile Devices Lab (Part 1 of 2) Overview Through these two lab sessions you will learn how to create mobile applications for Windows Mobile phones and PDAs. As developing for Windows Mobile

More information

Now it only remains to supply the code. Begin by creating three fonts:

Now it only remains to supply the code. Begin by creating three fonts: Owner-Draw Menus Normal menus are always drawn in the same font and the same size. But sometimes, this may not be enough for your purposes. For example, here is a screen shot from MathXpert: Notice in

More information

XNA 4.0 RPG Tutorials. Part 24. Level Editor Continued

XNA 4.0 RPG Tutorials. Part 24. Level Editor Continued XNA 4.0 RPG Tutorials Part 24 Level Editor Continued I'm writing these tutorials for the new XNA 4.0 framework. The tutorials will make more sense if they are read in order. You can find the list of tutorials

More information

Chapter 12. Tool Strips, Status Strips, and Splitters

Chapter 12. Tool Strips, Status Strips, and Splitters Chapter 12 Tool Strips, Status Strips, and Splitters Tool Strips Usually called tool bars. The new ToolStrip class replaces the older ToolBar class of.net 1.1. Create easily customized, commonly employed

More information

To start we will be using visual studio Start a new C# windows form application project and name it motivational quotes viewer

To start we will be using visual studio Start a new C# windows form application project and name it motivational quotes viewer C# Tutorial Create a Motivational Quotes Viewer Application in Visual Studio In this tutorial we will create a fun little application for Microsoft Windows using Visual Studio. You can use any version

More information

Representing Recursive Relationships Using REP++ TreeView

Representing Recursive Relationships Using REP++ TreeView Representing Recursive Relationships Using REP++ TreeView Author(s): R&D Department Publication date: May 4, 2006 Revision date: May 2010 2010 Consyst SQL Inc. All rights reserved. Representing Recursive

More information

C:\homeworks\PenAttention_v13_src\PenAttention_v13_src\PenAttention4\PenAttention\PenAttention.cs 1 using System; 2 using System.Diagnostics; 3 using

C:\homeworks\PenAttention_v13_src\PenAttention_v13_src\PenAttention4\PenAttention\PenAttention.cs 1 using System; 2 using System.Diagnostics; 3 using 1 using System; 2 using System.Diagnostics; 3 using System.Collections.Generic; 4 using System.ComponentModel; 5 using System.Data; 6 using System.Drawing; 7 using System.Text; 8 using System.Windows.Forms;

More information

We are going to use some graphics and found a nice little batman running GIF, off course you can use any image you want for the project.

We are going to use some graphics and found a nice little batman running GIF, off course you can use any image you want for the project. C# Tutorial - Create a Batman Gravity Run Game Start a new project in visual studio and call it gravityrun It should be a windows form application with C# Click OK Change the size of the to 800,300 and

More information

Yes, this is still a listbox!

Yes, this is still a listbox! Yes, this is still a listbox! Step 1: create a new project I use the beta 2 of Visual Studio 2008 ( codename Orcas ) and Expression Blend 2.0 September preview for this tutorial. You can download the beta2

More information

Main Game Code. //ok honestly im not sure, if i guess its a class ment for this page called methodtimer that //either uses the timer or set to timer..

Main Game Code. //ok honestly im not sure, if i guess its a class ment for this page called methodtimer that //either uses the timer or set to timer.. using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms;

More information

The Microsoft.NET Framework

The Microsoft.NET Framework Microsoft Visual Studio 2005/2008 and the.net Framework The Microsoft.NET Framework The Common Language Runtime Common Language Specification Programming Languages C#, Visual Basic, C++, lots of others

More information

Conventions in this tutorial

Conventions in this tutorial This document provides an exercise using Digi JumpStart for Windows Embedded CE 6.0. This document shows how to develop, run, and debug a simple application on your target hardware platform. This tutorial

More information

Start Visual Studio and create a new windows form application under C# programming language. Call this project YouTube Alarm Clock.

Start Visual Studio and create a new windows form application under C# programming language. Call this project YouTube Alarm Clock. C# Tutorial - Create a YouTube Alarm Clock in Visual Studio In this tutorial we will create a simple yet elegant YouTube alarm clock in Visual Studio using C# programming language. The main idea for this

More information

AP CS Unit 12: Drawing and Mouse Events

AP CS Unit 12: Drawing and Mouse Events AP CS Unit 12: Drawing and Mouse Events A JPanel object can be used as a container for other objects. It can also be used as an object that we can draw on. The first example demonstrates how to do that.

More information

Abstract Classes Interfaces CSCI 201 Principles of Software Development

Abstract Classes Interfaces CSCI 201 Principles of Software Development Abstract Classes Interfaces CSCI 201 Principles of Software Development Jeffrey Miller, Ph.D. jeffrey.miller@usc.edu Abstract Classes Outline USC CSCI 201L Abstract Classes An abstract class is a way for

More information

Abstract Classes Interfaces CSCI 201 Principles of Software Development

Abstract Classes Interfaces CSCI 201 Principles of Software Development Abstract Classes Interfaces CSCI 201 Principles of Software Development Jeffrey Miller, Ph.D. jeffrey.miller@usc.edu Abstract Classes Outline USC CSCI 201L Abstract Classes An abstract class is a way for

More information

Composite Pattern - Shapes Example - Java Sourcecode

Composite Pattern - Shapes Example - Java Sourcecode Composite Pattern - Shapes Example - Java Sourcecode In graphics editors a shape can be basic or complex. An example of a simple shape is a line, where a complex shape is a rectangle which is made of four

More information

EECS 1001 and EECS 1030M, lab 01 conflict

EECS 1001 and EECS 1030M, lab 01 conflict EECS 1001 and EECS 1030M, lab 01 conflict Those students who are taking EECS 1001 and who are enrolled in lab 01 of EECS 1030M should switch to lab 02. If you need my help with switching lab sections,

More information

The Gracefulness of the Merging Graph N ** C 4 with Dotnet Framework

The Gracefulness of the Merging Graph N ** C 4 with Dotnet Framework The Gracefulness of the Merging Graph N ** C 4 with Dotnet Framework Solairaju¹, N. Abdul Ali² and R.M. Karthikkeyan 3 1-2 : P.G. & Research Department of Mathematics, Jamal Mohamed College, Trichy 20.

More information

Eyes of the Dragon - XNA Part 33 Non-Player Character Conversations

Eyes of the Dragon - XNA Part 33 Non-Player Character Conversations Eyes of the Dragon - XNA Part 33 Non-Player Character Conversations I'm writing these tutorials for the XNA 4.0 framework. Even though Microsoft has ended support for XNA it still runs on all supported

More information

SNOWFLAKES PHOTO BORDER - PHOTOSHOP CS6 / CC

SNOWFLAKES PHOTO BORDER - PHOTOSHOP CS6 / CC Photo Effects: Snowflakes Photo Border (Photoshop CS6 / CC) SNOWFLAKES PHOTO BORDER - PHOTOSHOP CS6 / CC In this Photoshop tutorial, we ll learn how to create a simple and fun snowflakes photo border,

More information

Creating a Role Playing Game with XNA Game Studio 3.0 Part 7 Adding Sprites

Creating a Role Playing Game with XNA Game Studio 3.0 Part 7 Adding Sprites Creating a Role Playing Game with XNA Game Studio 3.0 Part 7 Adding Sprites To follow along with this tutorial you will have to have read the previous tutorials to understand much of what it going on.

More information

Course IPCis: Image Processing with C# Chapter C2: Commented Code of the Histogram Project

Course IPCis: Image Processing with C# Chapter C2: Commented Code of the Histogram Project 1 Course IPCis: Image Processing with C# Chapter C2: Commented Code of the Histogram Project Copyright by V. Miszalok, last update: 25-08-2006 using System; //Home of the base class of all classes "System.Object"

More information

Tutorial 19 - Microwave Oven Application Building Your Own Classes and Objects

Tutorial 19 - Microwave Oven Application Building Your Own Classes and Objects 1 Tutorial 19 - Microwave Oven Application Building Your Own Classes and Objects Outline 19.1 Test-Driving the Microwave Oven Application 19.2 Designing the Microwave Oven Application 19.3 Adding a New

More information

Instructions for Crossword Assignment CS130

Instructions for Crossword Assignment CS130 Instructions for Crossword Assignment CS130 Purposes: Implement a keyboard interface. 1. The program you will build is meant to assist a person in preparing a crossword puzzle for publication. You have

More information

Capturing the Mouse. Dragging Example

Capturing the Mouse. Dragging Example Capturing the Mouse In order to allow the user to drag something, you need to keep track of whether the mouse is "down" or "up". It is "down" from the MouseDown event to the subsequent MouseUp event. What

More information

This is the empty form we will be working with in this game. Look under the properties window and find the following and change them.

This is the empty form we will be working with in this game. Look under the properties window and find the following and change them. We are working on Visual Studio 2010 but this project can be remade in any other version of visual studio. Start a new project in Visual Studio, make this a C# Windows Form Application and name it zombieshooter.

More information

LIGHT_P_TOGGLE, LIGHT_N_TOGGLE, BATTERY_TOGGLE, ALTERNATOR_TOGGLE, AVIONICS_TOGGLE, FLOAT_RETRACT, FLOAT_EXTEND }

LIGHT_P_TOGGLE, LIGHT_N_TOGGLE, BATTERY_TOGGLE, ALTERNATOR_TOGGLE, AVIONICS_TOGGLE, FLOAT_RETRACT, FLOAT_EXTEND } using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.IO.Ports; using Microsoft.FlightSimulator.SimConnect;

More information

DAD Lab. 1 Introduc7on to C#

DAD Lab. 1 Introduc7on to C# DAD 2017-18 Lab. 1 Introduc7on to C# Summary 1..NET Framework Architecture 2. C# Language Syntax C# vs. Java vs C++ 3. IDE: MS Visual Studio Tools Console and WinForm Applica7ons 1..NET Framework Introduc7on

More information

Your Company Name. Tel: Fax: Microsoft Visual Studio C# Project Source Code Output

Your Company Name. Tel: Fax: Microsoft Visual Studio C# Project Source Code Output General Date Your Company Name Tel: +44 1234 567 9898 Fax: +44 1234 545 9999 email: info@@company.com Microsoft Visual Studio C# Project Source Code Output Created using VScodePrint Macro Variables Substitution

More information

(0,0) (600, 400) CS109. PictureBox and Timer Controls

(0,0) (600, 400) CS109. PictureBox and Timer Controls CS109 PictureBox and Timer Controls Let s take a little diversion and discuss how to draw some simple graphics. Graphics are not covered in the book, so you ll have to use these notes (or the built-in

More information

// Specify SEF file to load. oschema = (edischema) oedidoc.loadschema(spath + sseffilename, SchemaTypeIDConstants. Schema_Standard_Exchange_Format);

// Specify SEF file to load. oschema = (edischema) oedidoc.loadschema(spath + sseffilename, SchemaTypeIDConstants. Schema_Standard_Exchange_Format); using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using Edidev.FrameworkEDI;

More information

RegEx - Numbers matching. Below is a sample code to find the existence of integers within a string.

RegEx - Numbers matching. Below is a sample code to find the existence of integers within a string. RegEx - Numbers matching Below is a sample code to find the existence of integers within a string. Sample code pattern to check for number in a string: using System; using System.Collections.Generic; using

More information

RegEx-validate IP address. Defined below is the pattern for checking an IP address with value: String Pattern Explanation

RegEx-validate IP address. Defined below is the pattern for checking an IP address with value: String Pattern Explanation RegEx-validate IP address Defined below is the pattern for checking an IP address with value: 240.30.20.60 String Pattern Explanation 240 ^[0-9]1,3 To define the starting part as number ranging from 1

More information

In this lecture we will briefly examine a few new controls, introduce the concept of scope, random numbers, and drawing simple graphics.

In this lecture we will briefly examine a few new controls, introduce the concept of scope, random numbers, and drawing simple graphics. Additional Controls, Scope, Random Numbers, and Graphics CS109 In this lecture we will briefly examine a few new controls, introduce the concept of scope, random numbers, and drawing simple graphics. Combo

More information

Lesson11-Inheritance-Abstract-Classes. The GeometricObject case

Lesson11-Inheritance-Abstract-Classes. The GeometricObject case Lesson11-Inheritance-Abstract-Classes The GeometricObject case GeometricObject class public abstract class GeometricObject private string color = "White"; private DateTime datecreated = new DateTime(2017,

More information

Visual C# 2010 Express

Visual C# 2010 Express Review of C# and XNA What is C#? C# is an object-oriented programming language developed by Microsoft. It is developed within.net environment and designed for Common Language Infrastructure. Visual C#

More information

Inheriting Windows Forms with Visual C#.NET

Inheriting Windows Forms with Visual C#.NET Inheriting Windows Forms with Visual C#.NET Overview In order to understand the power of OOP, consider, for example, form inheritance, a new feature of.net that lets you create a base form that becomes

More information

APARAT DE MASURA. Descrierea programului

APARAT DE MASURA. Descrierea programului APARAT DE MASURA Descrierea programului Acest program reprezinta un aparat de masura universal. Acest apparat poate fi modificat in functie de necesitatile utilizatorului. Modificarile pe care aparatul

More information

Tutorial 5 Completing the Inventory Application Introducing Programming

Tutorial 5 Completing the Inventory Application Introducing Programming 1 Tutorial 5 Completing the Inventory Application Introducing Programming Outline 5.1 Test-Driving the Inventory Application 5.2 Introduction to C# Code 5.3 Inserting an Event Handler 5.4 Performing a

More information

Experiment 5 : Creating a Windows application to interface with 7-Segment LED display

Experiment 5 : Creating a Windows application to interface with 7-Segment LED display Experiment 5 : Creating a Windows application to interface with 7-Segment LED display Objectives : 1) To understand the how Windows Forms in the Windows-based applications. 2) To create a Window Application

More information

if (say==0) { k.commandtext = "Insert into kullanici(k_adi,sifre) values('" + textbox3.text + "','" + textbox4.text + "')"; k.

if (say==0) { k.commandtext = Insert into kullanici(k_adi,sifre) values(' + textbox3.text + ',' + textbox4.text + '); k. using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.Data.SqlClient;

More information

Visual Applications Graphics Lecture Nine. Graphics

Visual Applications Graphics Lecture Nine. Graphics Graphics You can use graphics to enhance the user interface of your applications, generate graphical charts and reports, and edit or create images. The.NET Framework includes tools that allow you to draw

More information

Equality in.net. Gregory Adam 07/12/2008. This article describes how equality works in.net

Equality in.net. Gregory Adam 07/12/2008. This article describes how equality works in.net Equality in.net Gregory Adam 07/12/2008 This article describes how equality works in.net Introduction How is equality implemented in.net? This is a summary of how it works. Object.Equals() Object.Equals()

More information

Scripting Tutorial - Lesson 14: (Advanced) Using Keyboard Controls with Multiple Classes

Scripting Tutorial - Lesson 14: (Advanced) Using Keyboard Controls with Multiple Classes Home TI-Nspire Authoring TI-Nspire Scripting HQ Scripting Tutorial - Lesson 14 Scripting Tutorial - Lesson 14: (Advanced) Using Keyboard Controls with Multiple Classes Download supporting files for this

More information

IN CHAPTER 9 we delved into advanced 2D graphics programming. In

IN CHAPTER 9 we delved into advanced 2D graphics programming. In 10 Transformation IN CHAPTER 9 we delved into advanced 2D graphics programming. In this chapter we will explore GDI+ transformations. A transformation is a process that changes graphics objects from one

More information

CSIS 1624 CLASS TEST 6

CSIS 1624 CLASS TEST 6 CSIS 1624 CLASS TEST 6 Instructions: Use visual studio 2012/2013 Make sure your work is saved correctly Submit your work as instructed by the demmies. This is an open-book test. You may consult the printed

More information

We're going to show you how to draw a variety of items including: Lines, simple shapes. Images from bitmap and other image files. Text.

We're going to show you how to draw a variety of items including: Lines, simple shapes. Images from bitmap and other image files. Text. Graphics with GDI+ This is the second of the two chapters in this book that covers the elements of interacting directly with the user, that is displaying information on the screen and accepting user input

More information

Inheritance, and Polymorphism.

Inheritance, and Polymorphism. Inheritance and Polymorphism by Yukong Zhang Object-oriented programming languages are the most widely used modern programming languages. They model programming based on objects which are very close to

More information

CS 61B Discussion 5: Inheritance II Fall 2014

CS 61B Discussion 5: Inheritance II Fall 2014 CS 61B Discussion 5: Inheritance II Fall 2014 1 WeirdList Below is a partial solution to the WeirdList problem from homework 3 showing only the most important lines. Part A. Complete the implementation

More information

On the theory of moveable objects

On the theory of moveable objects On the theory of moveable objects 1 (30) Sergey Andreyev On the theory of moveable objects Abstract. User-driven applications belong to the new type of programs, in which users get the full control of

More information

Diagramming for dummies

Diagramming for dummies Abstract: The structure of a simple diagramming control, called Netron Light, is explained in some details. The control is a simplified version of the Netron graph control which has many more features

More information

Learn C# Errata. 3-9 The Nullable Types The Assignment Operators

Learn C# Errata. 3-9 The Nullable Types The Assignment Operators 1 The following pages show errors from the original edition, published in July 2008, corrected in red. Future editions of this book will be printed with these corrections. We apologize for any inconvenience

More information

// Precondition: None // Postcondition: The address' name has been set to the // specified value set;

// Precondition: None // Postcondition: The address' name has been set to the // specified value set; // File: Address.cs // This classes stores a typical US address consisting of name, // two address lines, city, state, and 5 digit zip code. using System; using System.Collections.Generic; using System.Linq;

More information

A Summoner's Tale MonoGame Tutorial Series. Chapter 12. Battling Avatars Continued

A Summoner's Tale MonoGame Tutorial Series. Chapter 12. Battling Avatars Continued A Summoner's Tale MonoGame Tutorial Series Chapter 12 Battling Avatars Continued This tutorial series is about creating a Pokemon style game with the MonoGame Framework called A Summoner's Tale. The tutorials

More information

Abstract. 1. What is an ABSTRACT METHOD? 2. Why you would want to declare a method as abstract? 3. A non-abstract CLASS is called a concrete class

Abstract. 1. What is an ABSTRACT METHOD? 2. Why you would want to declare a method as abstract? 3. A non-abstract CLASS is called a concrete class ABSTRACT 2 1. What is an ABSTRACT METHOD? 2 2. Why you would want to declare a method as abstract? 2 3. A non-abstract CLASS is called a concrete class 2 4. Abstract Example 2 5. If you are extending ABSTRACT

More information

Tutorial 6 Enhancing the Inventory Application Introducing Variables, Memory Concepts and Arithmetic

Tutorial 6 Enhancing the Inventory Application Introducing Variables, Memory Concepts and Arithmetic Tutorial 6 Enhancing the Inventory Application Introducing Variables, Memory Concepts and Arithmetic Outline 6.1 Test-Driving the Enhanced Inventory Application 6.2 Variables 6.3 Handling the TextChanged

More information

@Override public void start(stage primarystage) throws Exception { Group root = new Group(); Scene scene = new Scene(root);

@Override public void start(stage primarystage) throws Exception { Group root = new Group(); Scene scene = new Scene(root); Intro to Drawing Graphics To draw some simple graphics, we first need to create a window. The easiest way to do this in the current version of Java is to create a JavaFX application. Previous versions

More information

string spath; string sedifile = "277_005010X228.X12"; string sseffile = "277_005010X228.SemRef.EVAL0.SEF";

string spath; string sedifile = 277_005010X228.X12; string sseffile = 277_005010X228.SemRef.EVAL0.SEF; using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using Edidev.FrameworkEDI; 1 namespace

More information

UNIT-3. Prepared by R.VINODINI 1

UNIT-3. Prepared by R.VINODINI 1 Prepared by R.VINODINI 1 Prepared by R.VINODINI 2 Prepared by R.VINODINI 3 Prepared by R.VINODINI 4 Prepared by R.VINODINI 5 o o o o Prepared by R.VINODINI 6 Prepared by R.VINODINI 7 Prepared by R.VINODINI

More information

OhioState::OpenGLPanel. OpenGL and Windows. Public methods. OpenGLPanel : Forms::Control

OhioState::OpenGLPanel. OpenGL and Windows. Public methods. OpenGLPanel : Forms::Control OhioState::OpenGLPanel OpenGL and Windows Windows Forms Programming Roger Crawfis The simplest possible canvas or rendering context. No assumptions are made (single buffer, double buffer, etc.) Burden

More information

Object oriented lab /second year / review/lecturer: yasmin maki

Object oriented lab /second year / review/lecturer: yasmin maki 1) Examples of method (function): Note: the declaration of any method is : method name ( parameters list ).. Method body.. Access modifier : public,protected, private. Return

More information

// Specify SEF file to load. edischema oschema = oedidoc.loadschema(spath + sseffilename, SchemaTypeIDConstants. Schema_Standard_Exchange_Format);

// Specify SEF file to load. edischema oschema = oedidoc.loadschema(spath + sseffilename, SchemaTypeIDConstants. Schema_Standard_Exchange_Format); using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using Edidev.FrameworkEDIx64;

More information

Creating a nice GUI. OpenGL and Windows. Note: VS 2003 shown. Create a new Project

Creating a nice GUI. OpenGL and Windows. Note: VS 2003 shown. Create a new Project Creating a nice GUI OpenGL and Windows Windows Forms Programming Roger Crawfis The next several slides will walk you thru a particular design that I like for my applications. The order can be a little

More information

+ Inheritance. Sometimes we need to create new more specialized types that are similar to types we have already created.

+ Inheritance. Sometimes we need to create new more specialized types that are similar to types we have already created. + Inheritance + Inheritance Classes that we design in Java can be used to model some concept in our program. For example: Pokemon a = new Pokemon(); Pokemon b = new Pokemon() Sometimes we need to create

More information

Microsoft Media Stream Technology and Online Media Teaching. Delin Tan, PhD Southern University at New Orleans

Microsoft Media Stream Technology and Online Media Teaching. Delin Tan, PhD Southern University at New Orleans Microsoft Media Stream Technology and Online Media Teaching Delin Tan, PhD Southern University at New Orleans dtan43@yahoo.com Abstract In this presentation, we explore how to use the Microsoft Media Streaming

More information

Examples. Products. W informs Controls > Products > Navigation Bar > Examples. This topic provides how -to examples, grouped by features.

Examples. Products. W informs Controls > Products > Navigation Bar > Examples. This topic provides how -to examples, grouped by features. Examples 3564 W informs Controls > Products > Navigation Bar > Examples This topic provides how -to examples, grouped by features. Examples Layout How to: Create a NavBar Control in Code How to: Activate

More information

II. Programming Technologies

II. Programming Technologies II. Programming Technologies II.1 The machine code program Code of algorithm steps + memory addresses: MOV AX,1234h ;0B8h 34h 12h - number (1234h) to AX register MUL WORD PTR [5678h] ;0F7h 26h 78h 56h

More information

The Open Core Interface SDK has to be installed on your development computer. The SDK can be downloaded at:

The Open Core Interface SDK has to be installed on your development computer. The SDK can be downloaded at: This document describes how to create a simple Windows Forms Application using some Open Core Interface functions in C# with Microsoft Visual Studio Express 2013. 1 Preconditions The Open Core Interface

More information

Polymorphism CSCI 201 Principles of Software Development

Polymorphism CSCI 201 Principles of Software Development Polymorphism CSCI 201 Principles of Software Development Jeffrey Miller, Ph.D. jeffrey.miller@usc.edu Program Outline USC CSCI 201L Polymorphism Based on the inheritance hierarchy, an object with a compile-time

More information

Lab 9: Creating a Reusable Class

Lab 9: Creating a Reusable Class Lab 9: Creating a Reusable Class Objective This will introduce the student to creating custom, reusable classes This will introduce the student to using the custom, reusable class This will reinforce programming

More information

More Language Features and Windows Forms. Part I. Some Language Features. Inheritance. Inheritance. Inheritance. Inheritance.

More Language Features and Windows Forms. Part I. Some Language Features. Inheritance. Inheritance. Inheritance. Inheritance. More Language Features and Windows Forms C# Programming Part I Some Language Features January 12 To extend a class A: class B : A { B inherits all instance variables and methods of A Which ones it can

More information

More Language Features and Windows Forms

More Language Features and Windows Forms More Language Features and Windows Forms C# Programming January 12 Part I Some Language Features Inheritance To extend a class A: class B : A {... } B inherits all instance variables and methods of A Which

More information

Chapter 1 Getting Started

Chapter 1 Getting Started Chapter 1 Getting Started The C# class Just like all object oriented programming languages, C# supports the concept of a class. A class is a little like a data structure in that it aggregates different

More information

XXXX BASIC SHAPES. Information. Sheet No. INTRODUCTION TO GRAPHICS

XXXX BASIC SHAPES. Information. Sheet No. INTRODUCTION TO GRAPHICS INTRODUCTION TO GRAPHICS BASIC SHAPES Information Sheet No. XXXX There are a few different methods through which you can make shapes. Create a new blank layer by clicking on the new layer icon as shown

More information

DigiPen Institute of Technology

DigiPen Institute of Technology DigiPen Institute of Technology Presents Session Four: Game Design Elements DigiPen Institute of Technology 5001 150th Ave NE, Redmond, WA 98052 Phone: (425) 558-0299 www.digipen.edu 2005 DigiPen (USA)

More information

Programming Language. Functions. Eng. Anis Nazer First Semester

Programming Language. Functions. Eng. Anis Nazer First Semester Programming Language Functions Eng. Anis Nazer First Semester 2016-2017 Definitions Function : a set of statements that are written once, and can be executed upon request Functions are separate entities

More information

CannonAttack v1.0. A Test Driven Development Tutorial in C# 4.0 Author: Dominic Millar Tech Review:Matt Rumble Editor:Cathy Tippett

CannonAttack v1.0. A Test Driven Development Tutorial in C# 4.0 Author: Dominic Millar Tech Review:Matt Rumble Editor:Cathy Tippett CannonAttack v1.0 A Test Driven Development Tutorial in C# 4.0 Author: Dominic Millar Tech Review:Matt Rumble Editor:Cathy Tippett http://domscode.com Introduction Defining the Battlefield This tutorial

More information