메뉴 건너뛰기

아시아평생교육원

프로그래밍자료실

동영상URL

카카오톡 자동 친구 수집 프로그램.PNG

 

리스트를 지정만 하면 친구추가를 알아서 해주는 프로그램입니다.

카카오톡 자동친구 추가

작업을 간편히 도와주는 간편작업

도우미 프로그램입니다.

 

using System.Reflection;

using System.Runtime.CompilerServices;

 

//

// 어셈블리에 대한 일반 정보는 다음 특성 집합을 통해 제어됩니다. 

// 어셈블리와 관련된 정보를 수정하려면

// 이 특성 값을 변경하십시오.

//

[assembly: AssemblyTitle("")]

[assembly: AssemblyDescription("")]

[assembly: AssemblyConfiguration("")]

[assembly: AssemblyCompany("")]

[assembly: AssemblyProduct("")]

[assembly: AssemblyCopyright("")]

[assembly: AssemblyTrademark("")]

[assembly: AssemblyCulture("")]

 

//

// 어셈블리의 버전 정보는 다음 네 가지 값으로 구성됩니다.

//

//      주 버전

//      부 버전 

//      빌드 번호

//      수정 번호

//

// 모든 값을 지정하거나

// 아래와 같이 '*'를 사용하여 수정 번호 및 빌드 번호가 자동으로 지정되도록 할 수 있습니다.

 

[assembly: AssemblyVersion("1.0.*")]

 

//

// 어셈블리에 서명하려면 사용할 키를 지정해야 합니다. 어셈블리 서명에 대한 자세한 내용은 

// Microsoft .NET Framework 설명서를 참조하십시오.

//

// 서명하는 데 사용할 키를 제어하려면 아래 특성을 사용합니다. 

//

// 참고: 

//   (*) 키를 지정하지 않으면 어셈블리에 서명할 수 없습니다.

//   (*) KeyName은

//       사용자 컴퓨터의 CSP(암호화 서비스 공급자)에

//        설치되어 있는 키를 참조하고 KeyFile은 키가 포함된 파일을

//        참조합니다.

//   (*) KeyFile과 KeyName 값을 모두 지정하면 

//       다음과 같은 프로세스가 발생합니다.

//       (1) CSP에 KeyName이 있으면 해당 키가 사용됩니다.

//       (2) KeyName은 없고, KeyFile이 있으면 

//           KeyFile의 키가 CSP에 설치되어 사용됩니다.

//   (*) sn.exe(강력한 이름 유틸리티)를 사용하면 KeyFile을 만들 수 있습니다.

//        KeyFile을 지정하는 경우

//       KeyFile의 위치는 %Project Directory%\obj\<configuration>의 프로젝트 출력 디렉터리 위치를 기준으로 하는 상대 위치이어야 합니다.

//       예를 들어, KeyFile이 프로젝트 디렉터리에 있는 경우

//       AssemblyKeyFile 특성을 

//       [assembly: AssemblyKeyFile("..\\..\\mykey.snk")]로 지정합니다.

//   (*) 서명 연기는 고급 옵션입니다.

//       이 옵션에 대한 자세한 내용은 Microsoft .NET Framework 설명서를 참조하십시오.

//

[assembly: AssemblyDelaySign(false)]

[assembly: AssemblyKeyFile("")]

[assembly: AssemblyKeyName("")]

 

 

 

========================================================================

using System; 

using System.IO; 

 

public class StreamTest 

public static void Main() 

int ch; 

Stream st = Console.OpenStandardInput(); 

Console.WriteLine("CanRead:"+ st.CanRead); 

Console.WriteLine("CanWrite :"+ st.CanWrite); 

Console.WriteLine("끝내시려면 'S'를 입력해 주세요"); 

Console.Write("아무글이나 입력하시고 Enter를 쳐주세요?"); 

while((ch=st.ReadByte()) != -1) 

if(ch == 83) 

{ // S의 아스키코드는 83 

Console.WriteLine("stop"); 

return; 

Console.WriteLine((char)ch +":"+ ch); 

} //main 

} //class 

 

 

 

========================================================================

using System.Reflection;

using System.Runtime.CompilerServices;

 

//

// 어셈블리에 대한 일반 정보는 다음 특성 집합을 통해 제어됩니다. 

// 어셈블리와 관련된 정보를 수정하려면

// 이 특성 값을 변경하십시오.

//

[assembly: AssemblyTitle("")]

[assembly: AssemblyDescription("")]

[assembly: AssemblyConfiguration("")]

[assembly: AssemblyCompany("")]

[assembly: AssemblyProduct("")]

[assembly: AssemblyCopyright("")]

[assembly: AssemblyTrademark("")]

[assembly: AssemblyCulture("")]

 

//

// 어셈블리의 버전 정보는 다음 네 가지 값으로 구성됩니다.

//

//      주 버전

//      부 버전 

//      빌드 번호

//      수정 번호

//

// 모든 값을 지정하거나

// 아래와 같이 '*'를 사용하여 수정 번호 및 빌드 번호가 자동으로 지정되도록 할 수 있습니다.

 

[assembly: AssemblyVersion("1.0.*")]

 

//

// 어셈블리에 서명하려면 사용할 키를 지정해야 합니다. 어셈블리 서명에 대한 자세한 내용은 

// Microsoft .NET Framework 설명서를 참조하십시오.

//

// 서명하는 데 사용할 키를 제어하려면 아래 특성을 사용합니다. 

//

// 참고: 

//   (*) 키를 지정하지 않으면 어셈블리에 서명할 수 없습니다.

//   (*) KeyName은

//       사용자 컴퓨터의 CSP(암호화 서비스 공급자)에

//        설치되어 있는 키를 참조하고 KeyFile은 키가 포함된 파일을

//        참조합니다.

//   (*) KeyFile과 KeyName 값을 모두 지정하면 

//       다음과 같은 프로세스가 발생합니다.

//       (1) CSP에 KeyName이 있으면 해당 키가 사용됩니다.

//       (2) KeyName은 없고, KeyFile이 있으면 

//           KeyFile의 키가 CSP에 설치되어 사용됩니다.

//   (*) sn.exe(강력한 이름 유틸리티)를 사용하면 KeyFile을 만들 수 있습니다.

//        KeyFile을 지정하는 경우

//       KeyFile의 위치는 %Project Directory%\obj\<configuration>의 프로젝트 출력 디렉터리 위치를 기준으로 하는 상대 위치이어야 합니다.

//       예를 들어, KeyFile이 프로젝트 디렉터리에 있는 경우

//       AssemblyKeyFile 특성을 

//       [assembly: AssemblyKeyFile("..\\..\\mykey.snk")]로 지정합니다.

//   (*) 서명 연기는 고급 옵션입니다.

//       이 옵션에 대한 자세한 내용은 Microsoft .NET Framework 설명서를 참조하십시오.

//

[assembly: AssemblyDelaySign(false)]

[assembly: AssemblyKeyFile("")]

[assembly: AssemblyKeyName("")]

 

 

 

========================================================================

using System; 

using System.IO; 

 

public class FileStreamTest

public static void Main()

{  

Console.WriteLine("1. 프로그램 시작"); 

String path = @"C:\C#Example\poet.txt"; 

 

Console.WriteLine("2. 파일에 데이터 기록"); 

FileStream fs = new  FileStream(path, FileMode.Create); 

StreamWriter sw = new StreamWriter(fs, System.Text.Encoding.Default); 

sw.BaseStream.Seek(0, SeekOrigin.End); 

sw.WriteLine ("-------------------------------"); 

sw.WriteLine("    파일 내용!!!!!!!!!!!   "); 

sw.WriteLine ("-------------------------------"); 

sw.Flush(); 

sw.Close(); 

 

Console.WriteLine("3. 파일에 데이터 읽기"); 

FileStream fs2 = new FileStream(path, FileMode.OpenOrCreate, FileAccess.Read); 

StreamReader sr = new StreamReader(fs2,System.Text.Encoding.Default); 

sr.BaseStream.Seek(0, SeekOrigin.Begin); 

while (sr.Peek() > -1) 

Console.WriteLine(sr.ReadLine()); 

sr.Close(); 

Console.WriteLine("4. 프로그램 종료"); 

 

 

 

========================================================================

using System.Reflection;

using System.Runtime.CompilerServices;

 

//

// 어셈블리에 대한 일반 정보는 다음 특성 집합을 통해 제어됩니다. 

// 어셈블리와 관련된 정보를 수정하려면

// 이 특성 값을 변경하십시오.

//

[assembly: AssemblyTitle("")]

[assembly: AssemblyDescription("")]

[assembly: AssemblyConfiguration("")]

[assembly: AssemblyCompany("")]

[assembly: AssemblyProduct("")]

[assembly: AssemblyCopyright("")]

[assembly: AssemblyTrademark("")]

[assembly: AssemblyCulture("")]

 

//

// 어셈블리의 버전 정보는 다음 네 가지 값으로 구성됩니다.

//

//      주 버전

//      부 버전 

//      빌드 번호

//      수정 번호

//

// 모든 값을 지정하거나

// 아래와 같이 '*'를 사용하여 수정 번호 및 빌드 번호가 자동으로 지정되도록 할 수 있습니다.

 

[assembly: AssemblyVersion("1.0.*")]

 

//

// 어셈블리에 서명하려면 사용할 키를 지정해야 합니다. 어셈블리 서명에 대한 자세한 내용은 

// Microsoft .NET Framework 설명서를 참조하십시오.

//

// 서명하는 데 사용할 키를 제어하려면 아래 특성을 사용합니다. 

//

// 참고: 

//   (*) 키를 지정하지 않으면 어셈블리에 서명할 수 없습니다.

//   (*) KeyName은

//       사용자 컴퓨터의 CSP(암호화 서비스 공급자)에

//        설치되어 있는 키를 참조하고 KeyFile은 키가 포함된 파일을

//        참조합니다.

//   (*) KeyFile과 KeyName 값을 모두 지정하면 

//       다음과 같은 프로세스가 발생합니다.

//       (1) CSP에 KeyName이 있으면 해당 키가 사용됩니다.

//       (2) KeyName은 없고, KeyFile이 있으면 

//           KeyFile의 키가 CSP에 설치되어 사용됩니다.

//   (*) sn.exe(강력한 이름 유틸리티)를 사용하면 KeyFile을 만들 수 있습니다.

//        KeyFile을 지정하는 경우

//       KeyFile의 위치는 %Project Directory%\obj\<configuration>의 프로젝트 출력 디렉터리 위치를 기준으로 하는 상대 위치이어야 합니다.

//       예를 들어, KeyFile이 프로젝트 디렉터리에 있는 경우

//       AssemblyKeyFile 특성을 

//       [assembly: AssemblyKeyFile("..\\..\\mykey.snk")]로 지정합니다.

//   (*) 서명 연기는 고급 옵션입니다.

//       이 옵션에 대한 자세한 내용은 Microsoft .NET Framework 설명서를 참조하십시오.

//

[assembly: AssemblyDelaySign(false)]

[assembly: AssemblyKeyFile("")]

[assembly: AssemblyKeyName("")]

 

 

 

========================================================================

using System; 

using System.IO; 

 

public class BufferedStreamTest

public static void Main(string[ ] args)

FileStream fs = new FileStream(args[0],FileMode.OpenOrCreate, FileAccess.Read); 

BufferedStream bin = new BufferedStream(fs); 

FileStream fs2 = new FileStream(args[1],FileMode.Create, FileAccess.Write); 

BufferedStream bout = new BufferedStream(fs2); 

byte[ ] array = new byte[1024*4]; //BufferedStream의 기본 버퍼는 4096

Console.Write("Copy..Start Time:  "+ DateTime.Now.TimeOfDay); 

int count = 0; 

do

count=bin.Read(array, 0, 4096); 

bout.Write(array, 0, count); 

}while(count>0); 

Console.Write("\nCopy....End Time:  "+DateTime.Now.TimeOfDay); 

bout.Flush(); 

bin.Close(); 

bout.Close(); 

} //main 

} //class 

 

 

 

========================================================================

using System.Reflection;

using System.Runtime.CompilerServices;

 

//

// 어셈블리에 대한 일반 정보는 다음 특성 집합을 통해 제어됩니다. 

// 어셈블리와 관련된 정보를 수정하려면

// 이 특성 값을 변경하십시오.

//

[assembly: AssemblyTitle("")]

[assembly: AssemblyDescription("")]

[assembly: AssemblyConfiguration("")]

[assembly: AssemblyCompany("")]

[assembly: AssemblyProduct("")]

[assembly: AssemblyCopyright("")]

[assembly: AssemblyTrademark("")]

[assembly: AssemblyCulture("")]

 

//

// 어셈블리의 버전 정보는 다음 네 가지 값으로 구성됩니다.

//

//      주 버전

//      부 버전 

//      빌드 번호

//      수정 번호

//

// 모든 값을 지정하거나

// 아래와 같이 '*'를 사용하여 수정 번호 및 빌드 번호가 자동으로 지정되도록 할 수 있습니다.

 

[assembly: AssemblyVersion("1.0.*")]

 

//

// 어셈블리에 서명하려면 사용할 키를 지정해야 합니다. 어셈블리 서명에 대한 자세한 내용은 

// Microsoft .NET Framework 설명서를 참조하십시오.

//

// 서명하는 데 사용할 키를 제어하려면 아래 특성을 사용합니다. 

//

// 참고: 

//   (*) 키를 지정하지 않으면 어셈블리에 서명할 수 없습니다.

//   (*) KeyName은

//       사용자 컴퓨터의 CSP(암호화 서비스 공급자)에

//        설치되어 있는 키를 참조하고 KeyFile은 키가 포함된 파일을

//        참조합니다.

//   (*) KeyFile과 KeyName 값을 모두 지정하면 

//       다음과 같은 프로세스가 발생합니다.

//       (1) CSP에 KeyName이 있으면 해당 키가 사용됩니다.

//       (2) KeyName은 없고, KeyFile이 있으면 

//           KeyFile의 키가 CSP에 설치되어 사용됩니다.

//   (*) sn.exe(강력한 이름 유틸리티)를 사용하면 KeyFile을 만들 수 있습니다.

//        KeyFile을 지정하는 경우

//       KeyFile의 위치는 %Project Directory%\obj\<configuration>의 프로젝트 출력 디렉터리 위치를 기준으로 하는 상대 위치이어야 합니다.

//       예를 들어, KeyFile이 프로젝트 디렉터리에 있는 경우

//       AssemblyKeyFile 특성을 

//       [assembly: AssemblyKeyFile("..\\..\\mykey.snk")]로 지정합니다.

//   (*) 서명 연기는 고급 옵션입니다.

//       이 옵션에 대한 자세한 내용은 Microsoft .NET Framework 설명서를 참조하십시오.

//

[assembly: AssemblyDelaySign(false)]

[assembly: AssemblyKeyFile("")]

[assembly: AssemblyKeyName("")]

 

 

 

========================================================================

using System; 

using System.IO; 

  

public class MemoryStreamTest

public static void Main()

byte[ ] values = new byte [ ] {0,1,2,3,4,5,6,7,8,9}; 

Console.WriteLine("1. 원본 배열에서 읽기"); 

foreach (byte b in values) 

Console.Write(b+"\t"); 

Console.WriteLine("2. 메모리 스트림을 통해서 읽기"); 

MemoryStream ms = new MemoryStream (values); 

int temp = 0; 

while( (temp = ms.ReadByte())!=-1 )

{ //메모리 스트림읽기 

Console.Write(temp+"\t"); 

Console.WriteLine("3. 메모리 스트림을 배열로 만들기"); 

byte[ ] result = ms.ToArray(); //메모리스트림을 배열로 

foreach (byte b in result) 

Console.Write(b +"\t"); 

}

}

 

 

========================================================================

using System.Reflection;

using System.Runtime.CompilerServices;

 

//

// 어셈블리에 대한 일반 정보는 다음 특성 집합을 통해 제어됩니다. 

// 어셈블리와 관련된 정보를 수정하려면

// 이 특성 값을 변경하십시오.

//

[assembly: AssemblyTitle("")]

[assembly: AssemblyDescription("")]

[assembly: AssemblyConfiguration("")]

[assembly: AssemblyCompany("")]

[assembly: AssemblyProduct("")]

[assembly: AssemblyCopyright("")]

[assembly: AssemblyTrademark("")]

[assembly: AssemblyCulture("")]

 

//

// 어셈블리의 버전 정보는 다음 네 가지 값으로 구성됩니다.

//

//      주 버전

//      부 버전 

//      빌드 번호

//      수정 번호

//

// 모든 값을 지정하거나

// 아래와 같이 '*'를 사용하여 수정 번호 및 빌드 번호가 자동으로 지정되도록 할 수 있습니다.

 

[assembly: AssemblyVersion("1.0.*")]

 

//

// 어셈블리에 서명하려면 사용할 키를 지정해야 합니다. 어셈블리 서명에 대한 자세한 내용은 

// Microsoft .NET Framework 설명서를 참조하십시오.

//

// 서명하는 데 사용할 키를 제어하려면 아래 특성을 사용합니다. 

//

// 참고: 

//   (*) 키를 지정하지 않으면 어셈블리에 서명할 수 없습니다.

//   (*) KeyName은

//       사용자 컴퓨터의 CSP(암호화 서비스 공급자)에

//        설치되어 있는 키를 참조하고 KeyFile은 키가 포함된 파일을

//        참조합니다.

//   (*) KeyFile과 KeyName 값을 모두 지정하면 

//       다음과 같은 프로세스가 발생합니다.

//       (1) CSP에 KeyName이 있으면 해당 키가 사용됩니다.

//       (2) KeyName은 없고, KeyFile이 있으면 

//           KeyFile의 키가 CSP에 설치되어 사용됩니다.

//   (*) sn.exe(강력한 이름 유틸리티)를 사용하면 KeyFile을 만들 수 있습니다.

//        KeyFile을 지정하는 경우

//       KeyFile의 위치는 %Project Directory%\obj\<configuration>의 프로젝트 출력 디렉터리 위치를 기준으로 하는 상대 위치이어야 합니다.

//       예를 들어, KeyFile이 프로젝트 디렉터리에 있는 경우

//       AssemblyKeyFile 특성을 

//       [assembly: AssemblyKeyFile("..\\..\\mykey.snk")]로 지정합니다.

//   (*) 서명 연기는 고급 옵션입니다.

//       이 옵션에 대한 자세한 내용은 Microsoft .NET Framework 설명서를 참조하십시오.

//

[assembly: AssemblyDelaySign(false)]

[assembly: AssemblyKeyFile("")]

[assembly: AssemblyKeyName("")]

 

 

 

========================================================================

using System; 

using System.IO; 

 

public class StringRWTest

public static void Main()

int ch; 

string str="ehan!"; 

StringReader sr=new StringReader(str); 

StringWriter sw=new StringWriter(); 

while((ch=sr.Read())!=-1)

sw.Write((char)ch); 

Console.WriteLine("read:["+(char)ch+"]"+",write:["+ sw.ToString() +"]"); 

Console.WriteLine("문자열 출력: "+sw.ToString()); 

}

}

 

 

========================================================================

using System.Reflection;

using System.Runtime.CompilerServices;

 

//

// 어셈블리에 대한 일반 정보는 다음 특성 집합을 통해 제어됩니다. 

// 어셈블리와 관련된 정보를 수정하려면

// 이 특성 값을 변경하십시오.

//

[assembly: AssemblyTitle("")]

[assembly: AssemblyDescription("")]

[assembly: AssemblyConfiguration("")]

[assembly: AssemblyCompany("")]

[assembly: AssemblyProduct("")]

[assembly: AssemblyCopyright("")]

[assembly: AssemblyTrademark("")]

[assembly: AssemblyCulture("")]

 

//

// 어셈블리의 버전 정보는 다음 네 가지 값으로 구성됩니다.

//

//      주 버전

//      부 버전 

//      빌드 번호

//      수정 번호

//

// 모든 값을 지정하거나

// 아래와 같이 '*'를 사용하여 수정 번호 및 빌드 번호가 자동으로 지정되도록 할 수 있습니다.

 

[assembly: AssemblyVersion("1.0.*")]

 

//

// 어셈블리에 서명하려면 사용할 키를 지정해야 합니다. 어셈블리 서명에 대한 자세한 내용은 

// Microsoft .NET Framework 설명서를 참조하십시오.

//

// 서명하는 데 사용할 키를 제어하려면 아래 특성을 사용합니다. 

//

// 참고: 

//   (*) 키를 지정하지 않으면 어셈블리에 서명할 수 없습니다.

//   (*) KeyName은

//       사용자 컴퓨터의 CSP(암호화 서비스 공급자)에

//        설치되어 있는 키를 참조하고 KeyFile은 키가 포함된 파일을

//        참조합니다.

//   (*) KeyFile과 KeyName 값을 모두 지정하면 

//       다음과 같은 프로세스가 발생합니다.

//       (1) CSP에 KeyName이 있으면 해당 키가 사용됩니다.

//       (2) KeyName은 없고, KeyFile이 있으면 

//           KeyFile의 키가 CSP에 설치되어 사용됩니다.

//   (*) sn.exe(강력한 이름 유틸리티)를 사용하면 KeyFile을 만들 수 있습니다.

//        KeyFile을 지정하는 경우

//       KeyFile의 위치는 %Project Directory%\obj\<configuration>의 프로젝트 출력 디렉터리 위치를 기준으로 하는 상대 위치이어야 합니다.

//       예를 들어, KeyFile이 프로젝트 디렉터리에 있는 경우

//       AssemblyKeyFile 특성을 

//       [assembly: AssemblyKeyFile("..\\..\\mykey.snk")]로 지정합니다.

//   (*) 서명 연기는 고급 옵션입니다.

//       이 옵션에 대한 자세한 내용은 Microsoft .NET Framework 설명서를 참조하십시오.

//

[assembly: AssemblyDelaySign(false)]

[assembly: AssemblyKeyFile("")]

[assembly: AssemblyKeyName("")]

 

 

 

========================================================================

using System;

using System.Drawing;

using System.Collections;

using System.ComponentModel;

using System.Windows.Forms;

using System.Data;

using System.Threading;

 

namespace Chapter13_1

{

/// <summary>

/// Form1에 대한 요약 설명입니다.

/// </summary>

public class Form1 : System.Windows.Forms.Form

{

/// <summary>

/// 필수 디자이너 변수입니다.

/// </summary>

private System.ComponentModel.Container components = null;

 

 

private System.Windows.Forms.Panel panel1;

private System.Windows.Forms.MainMenu mainMenu1;

private System.Windows.Forms.MenuItem menuItem1;

private System.Windows.Forms.MenuItem menuItem2;

private System.Windows.Forms.MenuItem menuItem3;

private System.Windows.Forms.MenuItem menuItem4;

private System.Windows.Forms.GroupBox groupBox1;

private System.Windows.Forms.GroupBox groupBox2;

private System.Windows.Forms.Panel panel2;

private System.Windows.Forms.GroupBox groupBox3;

private System.Windows.Forms.Panel panel3;

private System.Windows.Forms.GroupBox groupBox4;

private System.Windows.Forms.Panel panel4;

 

private Graphics gOne,gTwo,gThree,gFour;

private Thread threadOne;

private Thread threadTwo;

private Thread threadThree;

private Thread threadFour;

private System.Windows.Forms.MenuItem menuItem5;

private System.Windows.Forms.MenuItem menuItem6;

private System.Windows.Forms.MenuItem menuItem7;

 

private Rectangle rec;

 

public Form1()

{

//

// Windows Form 디자이너 지원에 필요합니다.

//

InitializeComponent();

 

//

// TODO: InitializeComponent를 호출한 다음 생성자 코드를 추가합니다.

//

 

 

}

 

/// <summary>

/// 사용 중인 모든 리소스를 정리합니다.

/// </summary>

protected override void Dispose( bool disposing )

{

if( disposing )

{

if (components != null) 

{

components.Dispose();

}

}

base.Dispose( disposing );

}

 

#region Windows Form 디자이너에서 생성한 코드

/// <summary>

/// 디자이너 지원에 필요한 메서드입니다.

/// 이 메서드의 내용을 코드 편집기로 수정하지 마십시오.

/// </summary>

private void InitializeComponent()

{

this.panel1 = new System.Windows.Forms.Panel();

this.mainMenu1 = new System.Windows.Forms.MainMenu();

this.menuItem1 = new System.Windows.Forms.MenuItem();

this.menuItem2 = new System.Windows.Forms.MenuItem();

this.menuItem3 = new System.Windows.Forms.MenuItem();

this.menuItem4 = new System.Windows.Forms.MenuItem();

this.groupBox1 = new System.Windows.Forms.GroupBox();

this.groupBox2 = new System.Windows.Forms.GroupBox();

this.panel2 = new System.Windows.Forms.Panel();

this.groupBox3 = new System.Windows.Forms.GroupBox();

this.panel3 = new System.Windows.Forms.Panel();

this.groupBox4 = new System.Windows.Forms.GroupBox();

this.panel4 = new System.Windows.Forms.Panel();

this.menuItem5 = new System.Windows.Forms.MenuItem();

this.menuItem6 = new System.Windows.Forms.MenuItem();

this.menuItem7 = new System.Windows.Forms.MenuItem();

this.groupBox1.SuspendLayout();

this.groupBox2.SuspendLayout();

this.groupBox3.SuspendLayout();

this.groupBox4.SuspendLayout();

this.SuspendLayout();

// 

// panel1

// 

this.panel1.BackColor = System.Drawing.Color.White;

this.panel1.Location = new System.Drawing.Point(8, 16);

this.panel1.Name = "panel1";

this.panel1.Size = new System.Drawing.Size(184, 144);

this.panel1.TabIndex = 0;

// 

// mainMenu1

// 

this.mainMenu1.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] {

  this.menuItem1});

// 

// menuItem1

// 

this.menuItem1.Index = 0;

this.menuItem1.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] {

  this.menuItem2,

  this.menuItem3,

  this.menuItem4,

  this.menuItem5,

  this.menuItem7,

  this.menuItem6});

this.menuItem1.Text = "그리기";

// 

// menuItem2

// 

this.menuItem2.Index = 0;

this.menuItem2.Text = "사각형";

this.menuItem2.Click += new System.EventHandler(this.menuItem2_Click);

// 

// menuItem3

// 

this.menuItem3.Index = 1;

this.menuItem3.Text = "원";

this.menuItem3.Click += new System.EventHandler(this.menuItem3_Click);

// 

// menuItem4

// 

this.menuItem4.Index = 2;

this.menuItem4.Text = "채우기";

this.menuItem4.Click += new System.EventHandler(this.menuItem4_Click);

// 

// groupBox1

// 

this.groupBox1.Controls.Add(this.panel1);

this.groupBox1.Location = new System.Drawing.Point(0, 0);

this.groupBox1.Name = "groupBox1";

this.groupBox1.Size = new System.Drawing.Size(200, 168);

this.groupBox1.TabIndex = 1;

this.groupBox1.TabStop = false;

// 

// groupBox2

// 

this.groupBox2.Controls.Add(this.panel2);

this.groupBox2.Location = new System.Drawing.Point(208, 0);

this.groupBox2.Name = "groupBox2";

this.groupBox2.Size = new System.Drawing.Size(200, 168);

this.groupBox2.TabIndex = 2;

this.groupBox2.TabStop = false;

// 

// panel2

// 

this.panel2.BackColor = System.Drawing.Color.White;

this.panel2.Location = new System.Drawing.Point(8, 16);

this.panel2.Name = "panel2";

this.panel2.Size = new System.Drawing.Size(184, 144);

this.panel2.TabIndex = 0;

// 

// groupBox3

// 

this.groupBox3.Controls.Add(this.panel3);

this.groupBox3.Location = new System.Drawing.Point(0, 176);

this.groupBox3.Name = "groupBox3";

this.groupBox3.Size = new System.Drawing.Size(200, 168);

this.groupBox3.TabIndex = 3;

this.groupBox3.TabStop = false;

// 

// panel3

// 

this.panel3.BackColor = System.Drawing.Color.White;

this.panel3.Location = new System.Drawing.Point(8, 16);

this.panel3.Name = "panel3";

this.panel3.Size = new System.Drawing.Size(184, 144);

this.panel3.TabIndex = 0;

// 

// groupBox4

// 

this.groupBox4.Controls.Add(this.panel4);

this.groupBox4.Location = new System.Drawing.Point(208, 176);

this.groupBox4.Name = "groupBox4";

this.groupBox4.Size = new System.Drawing.Size(200, 168);

this.groupBox4.TabIndex = 4;

this.groupBox4.TabStop = false;

// 

// panel4

// 

this.panel4.BackColor = System.Drawing.Color.White;

this.panel4.Location = new System.Drawing.Point(8, 16);

this.panel4.Name = "panel4";

this.panel4.Size = new System.Drawing.Size(184, 144);

this.panel4.TabIndex = 0;

// 

// menuItem5

// 

this.menuItem5.Index = 3;

this.menuItem5.Text = "반짝반짝";

this.menuItem5.Click += new System.EventHandler(this.menuItem5_Click);

// 

// menuItem6

// 

this.menuItem6.Index = 5;

this.menuItem6.Text = "종료";

// 

// menuItem7

// 

this.menuItem7.Index = 4;

this.menuItem7.Text = "-";

// 

// Form1

// 

this.AutoScaleBaseSize = new System.Drawing.Size(6, 14);

this.ClientSize = new System.Drawing.Size(408, 345);

this.Controls.Add(this.groupBox4);

this.Controls.Add(this.groupBox3);

this.Controls.Add(this.groupBox2);

this.Controls.Add(this.groupBox1);

this.Menu = this.mainMenu1;

this.Name = "Form1";

this.Text = "Form1";

this.groupBox1.ResumeLayout(false);

this.groupBox2.ResumeLayout(false);

this.groupBox3.ResumeLayout(false);

this.groupBox4.ResumeLayout(false);

this.ResumeLayout(false);

 

}

#endregion

 

/// <summary>

/// 해당 응용 프로그램의 주 진입점입니다.

/// </summary>

[STAThread]

static void Main() 

{

Application.Run(new Form1());

}

 

private void menuItem2_Click(object sender, System.EventArgs e)

{

threadOne=new Thread(new ThreadStart(One));

threadOne.Start();

 

}

 

private void One()

{

gOne=panel1.CreateGraphics();

rec=new Rectangle(30,30,70,70);

 

while(true)

{

Thread.Sleep(1000);

gOne.DrawRectangle(Pens.Green,rec);

gOne.RotateTransform(1);

}

}

 

private void Two()

{

gTwo=panel2.CreateGraphics();

Rectangle r2=new Rectangle(30,30,70,70);

int red=0,green=0,blue=0;

 

while(true)

{

Thread.Sleep(100);

red+=1;

green+=10;

blue+=20;

if(red >255 || green >255 || blue>255)

{

red=0;green=0;blue=0;

}

SolidBrush brush=new SolidBrush(Color.FromArgb(red,green,blue));

gTwo.FillEllipse(brush,30,30,100,100);

}

}

 

protected override void OnClosing(CancelEventArgs e)

{

if(threadOne != null)

threadOne.Abort();

if(threadTwo != null)

threadTwo.Abort();

if(threadThree != null)

threadThree.Abort();

if(threadFour != null)

threadFour.Abort();

 

base.OnClosing (e);

}

 

private void menuItem3_Click(object sender, System.EventArgs e)

{

threadTwo=new Thread(new ThreadStart(Two));

threadTwo.Start();

}

 

private void menuItem4_Click(object sender, System.EventArgs e)

{

threadThree=new Thread(new ThreadStart(Three));

threadThree.Start();

}

 

private void Three()

{

gThree=panel3.CreateGraphics();

int red=0,green=0,blue=0;

 

while(true)

{

Thread.Sleep(100);

red+=20;

green+=10;

blue+=1;

if(red >255 || green >255 || blue>255)

{

red=0;green=0;blue=0;

}

SolidBrush brush=new SolidBrush(Color.FromArgb(red,green,blue));

gThree.FillRectangle(brush,0,0,200,150);

}

}

 

private void menuItem5_Click(object sender, System.EventArgs e)

{

threadFour=new Thread(new ThreadStart(Four));

threadFour.Start();

}

 

private void Four()

{

gFour=panel4.CreateGraphics();

 

while(true)

{

Thread.Sleep(10);

Brush brush=new SolidBrush(Color.Blue);

gFour.FillRectangle(brush,0,0,200,150);

gFour.Clear(Color.White);

}

}

}

}

 

 

TOTAL COMMENTS : 0

이 게시물은 댓글을 달 수 없습니다.
위로