.NET
-
C# 공통 대화상자 컨트롤(파일대화상자,텍스트박스,폰트/색상 대화상자,메세지박스).NET/C# Form 2008. 10. 22. 03:44
private void button1_Click(object sender, EventArgs e) { OpenFileDialog ofd = new OpenFileDialog(); ofd.Filter = "All file(*.*)|(*.*)"; if (ofd.ShowDialog() == DialogResult.OK) MessageBox.Show(ofd.FileName); } private void button2_Click(object sender, EventArgs e) { SaveFileDialog sfd = new SaveFileDialog(); sfd.Filter = "All file(*.*)|(*.*)"; if (sfd.ShowDialog() == DialogResult.OK) MessageBox...
-
C# 예제로 배우는 컨트롤.NET/C# Form 2008. 10. 21. 15:33
대화상자 컨트롤 OpenFileDialog 파일을 열 때 파일을 선택하는 대화상자 SaveFileDialog 파일을 저장할 때 파일을 선택하는 대화상자 FontDialog 폰트 혹은 폰트 크기와 스타일을 지정할 때 사용하는 대화상자 ColorDialog 색상을 선택하는 대화상자 PrintDialog 프린트할 때 사용하는 대화상자 PrintPreviewDialog 프린트 미리보기 대화상자 대화상자도 컨트롤이다. 파일 대화상자는 파일 열기 대화상자와 파일 저장 대화상자가 있다. 다음은 OpenFileDialog 컨트롤의 속성을 정리해놓은 것이다. Filter 어떤 파일 확장자를 보여줄 것인지 지정하는 파일 필터 리스트 예) openDlg.Filter = "모든 파일 (*.*)|*.*"; FilterIndex..
-
C# 레이블 ( 레이블 링크) label.NET/C# Form 2008. 10. 21. 07:17
www.ssogarif.tistory.com private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) { System.Diagnostics.Process.Start("IExplore", linkLabel1.Text); } OR private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) { System.Diagnostics.Process.Start(linkLabel1.Text); }
-
C# 컨트롤 소스 컨트롤의 배열을 작성하려면 - 네이버 퍼옴.NET/C# Form 2008. 10. 21. 07:03
컨트롤의 배열을 작성하려면, 배열을 정의해, 그것을 인스턴스화해 폼에 추가할 필요가 있습니다 우선, 컨트롤의 배열을 , 사적인 맴버로 정의해 둡니다 이 배열을 인스턴스화하고, 폼에 추가하는 것만으로 배치됩니다 추가할 때에 초기화 해 두고 싶은 프로퍼티둥의 설정도 잊지 않고 가 줏요 도 이 때 이벤트 핸들러의 통합도 할 수 있습니다 통합된 이벤트에서는, sender 인수를 이용하고 이벤트가 일어난 컨트롤을 특정할 수 있습니다 당연합니다만, 이러한 작업은 폼이 표시되기 전에 실시하는 것이 많다고 생각합니다 이하의 예는 Form 이 Load 되었을때 에 동적으로 컨트롤의배열을 작성해 폼에 추가합니다 하는 김에 이벤트 핸들러의 통합의 일례도 가고 있습니다. //사적인 필드로서 배열을 정의한다 private Te..
-
C# 핸들러 통합(라디오버튼) Tag.NET/C# Form 2008. 10. 21. 06:22
Tag는 Control클래스의 프로퍼티이므로 그 파생 클래스에는 이 프로퍼티가 공통적으로 존재한다. Tag는 꼬리표라는 뜻인데 용도가 따로 정해져 있지 않으므로 사용자가 마음대로 의미를 정해서 사용할 수 잇다. 이른바 사용자용 프로퍼티인 셈인데 object 타입으로 임의 타입으로 정보를 저장해 놓을수 잇다. 단 속성 창에서 직접 편집할 떄는 문자열 형태로 저장되므로 꺼내 쓸때 적당히 캐스팅해야한다 private void ColorChanged(object sender, EventArgs e) { RadioButton R = sender as RadioButton; button1.BackColor = Color.FromName((string)R.Tag); } private void AlignChanged(..
-
C# 라디오 버튼 값 받기.NET/C# Form 2008. 10. 21. 05:45
namespace WindowsApplication11 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void checkBox1_CheckedChanged(object sender, EventArgs e) { MessageBox.Show(Convert.ToString(sender)); if (((CheckBox)sender).Checked) button1.Enabled = false; else button1.Enabled = true; } private void checkBox2_CheckedChanged(object sender, EventArgs e) { MessageBox.Show(Conv..
-
C# 버튼 메서드 Click 이벤트를 강제로 실행하는 PerformClick 사용예.NET/C# Form 2008. 10. 21. 04:52
namespace buttonTest { public partial class Form1 : Form { public Form1() { InitializeComponent(); } Int32 myVar=0; private void button1_Click(object sender, EventArgs e) { // If myVar is an even number, click Button2. if (myVar % 2 == 0) { MessageBox.Show("1번버튼 효과 없음"); button2.PerformClick(); // Display the status of Button2's Click event. } else { // Display the status of Button2's Click even..
-
-
C# 커스텀 어트리뷰트 전처리문.NET/C# Basic 2008. 10. 17. 04:46
/////////// 커스텀어트리뷰트 //////////////// 사용자가 직접 정의하는 어트리뷰트를 커스텀어트리뷰트라고 한다. 컴파일 방식이나 생성되는 기계어 코드에는 전혀 영향을 주지 않으며 실행 파일에 메타 데이터로 포함될 뿐이다 코드에 설명을 다는 일종의 주석이라고 할 수 있는데 자유롭게 붙이는 문자열 형태의 주석과는 달리 일정한 형식이 있으며 프로그래밍 방식으로 조작할 수 있으므로 자동화된 처리가 가능하다는 점이 다르다 커스텀 어트리뷰트를 어떻게 정의해서 어디다 사용할 것인가느 그야말로 사용자 마음대로이다 컴파일러는 어트리뷰트의 형식을 체크하여 제대로 작성했는지 점검하고메타 데이터로 기록만 해놓을뿐 이 데이터를 읽어서 사용하는 주체는 사용자이다 다음 예제는 메서드와 필드에 제작자와 작성시기를 ..
-
C# 어트리뷰트 예외처리.NET/C# Basic 2008. 10. 16. 16:27
//////////////////// 어트리뷰트 //////////////// C#문법은 지정자로 각 요소의 성질을 밝힌다. public private 지정자는 맴버의 공개 여부를 통제하며, const, readonly는 변경가능성을 지정하고static abstract 는 기억장소나 구현여부를 결정한다 지정자별로 의미가 정해져 있어서 문법 요소에 다양한 성질을 부여할 수 있다 문법이 지원하는 것 이외의 성질을 더 지정하고 싶을 떄는 이 절에서 소개하는 어트리뷰트를 사용한다 어트리뷰트는 컴파일러에게 코드에 대한 여분의 추가 정보를 제공하는 선언 형식이다 이렇게 추가된 정보는 컴파일 방식에 영향을 주기도 하며 공식적이고 간결한 형태로 코드를 문서화하기도 한다 어트리뷰트 형태로 작성된 기록은 실행파일에 포함되..
-
C# 켈렉션 콜렉션 ArrayList Hashtable SortedList Stack.NET/C# Basic 2008. 10. 16. 15:05
ArrayList 클래스 IList 인터페이스를 구현한 것으로, 객체 배열의 크기가 동적으로 조절 내부적으로는 object형 배열을 가지며, 배열의 크기가 할당된 것보다 더 필요한 경우 더 큰 배열로 대체 using System; using System.Collections; class Class { static void Main() { ArrayList list = new ArrayList(); list.AddRange(new string[] {"apple","bababobo","cat" }); list.Sort(); foreach(string s in list) Console.WriteLine(s); Console.WriteLine(list[2]); } } Hashtable 클래스 Hashtable ..
-
닷넷 클래스 object is 연산자 GetHashCode().NET/C# Basic 2008. 10. 16. 00:42
닷넷 클래스 object object도 일종의 클래스 이므로 내부에 맴버를 가진다 생성자는 아무것도 하지않는 디폴트생성자만 정의되어있으면 필드, 상수, 프로퍼티 인덱서 이벤트등은 가지지않는다.루트 클래스의 맴버는 모든 후손에게 상속되므로 메모리를 소모하는 멤버는 포항하기 어렵다 만약 object에 40바이트의 필드가 있다면 닷넷의 모든 객체는 최소 40바이트 이상으로 되어야하므로 메모리 낭비가 너무 심해질것이다 그래서 객체를 관리하는 일반적인 메서드만을 가진 object 로부터 파생된 모든클래스의 객체들은 이메서드를 가지는 셈이다 ToString public virtual 객체를 문자열 형태로 표현한다 티폴트로 클래스 이름을 리턴하는 데 필요시 재정의할수있다 GetType public 객체의 타입정보를 ..
-
닷넷 클래스 리플렉션 reflection.NET/C# Basic 2008. 10. 15. 18:00
클래스 라이브러리 닷넷 기본 클래스 라이브러리를 사용하면 개발 시간을 많이 단축할 수 있다 제공된 클래스를 생성하거나 상속받아서 새로운 클래스를 정의 System 네임스페이스는 기본 클래스를 모아둔 네임스페이스 System.Object 객체를 비롯해서 기본 데이터형과 같은 기본 클래스가 정의 리플렉션 GetType 메서드는 클래스를 나타내는 Type 객체를 리턴하는 메서드 Type 객체를 이용하면 실행 타임에 클래스에 대한 다양한 정보를 구할 수 있다 Type type = pt.GetType(); FieldInfo [] finfo = type.GetFields(); Type 객체로부터 클래스 정보를 구할 수 있는 방법을 리플렉션(reflection) 이라 한다 리플렉션을 통해서 알아낼 수 있는 정보에는 ..
-
클래스관련 const 상수 readonly 구조체관련 GetType() , is as.NET/C# Basic 2008. 10. 15. 14:48
using System; class Sizes { public const int Medium = 100; // 상수로써 사용되는것 const 항상동일한수 public const int Large = 105;// const 라고 붙은것은 별도의 객체생성없이도 가능 public const int XLarge = 110; } class Shirt { public static void Main() { while(true) { string s; Console.WriteLine("치수 기호를 입력하세요. (M)edium (L)arge (X)Large (q)uit"); s = Console.ReadLine(); if(s == "q") break; switch(s) { case "M" : Console.WriteLin..
-
프로퍼티 인덱서.NET/C# Basic 2008. 10. 15. 06:11
///// 프로퍼티 ///////// using System; class test { private int a; public int A { get { Console.Write("get"); this.a = a+2; return a; } set { Console.WriteLine("set"); this.a = value; } } } class jks { static void Main() { test t = new test(); t.A = 2; Console.WriteLine("{0}",t.A); } } using System; class jksPro { private string Name; public string NameP { get { string newName = this.Name + "추가문장"; ..
-
연산자 메서드 operator +(), operator-() , 연산자 오버로딩?.NET/C# Basic 2008. 10. 15. 05:37
연산자 메서드를 부르려면 해당 연산자를 사용하며, 연산자를 사용하면 코드가 훨씬 직관적이기 때문에 이해하기 쉬워진다 using System; class Point { public int x; public int y; public Point( int x, int y ) { this.x = x; this.y = y; } public override string ToString() { // (x,y) 값 return String.Format("({0},{1})", x, y ); } // + 연산자 메서드 public static Point operator +(Point pt1, Point pt2) { return (new Point(pt1.x + pt2.x, pt1.y + pt2.y)); } // - 연산자 ..
-
static정적맴버 배열 연산자 is/as foreach 문 메서드 오버로딩 메서드 가변 인자.NET/C# Basic 2008. 10. 14. 21:41
정적(static) 멤버 일반적인 객체 사용 방법은 클래스를 정의하고, 여러 개의 인스턴스를 생성 현재 생성된 총 인스턴스 수를 구하려면 정수형 변수를 두고 인스턴스를 생성할 때마다 하나씩 증가 인스턴스간에 공유해야 하는 값이 필요한 경우, 정적(static) 멤버를 사용 using System; class Point { public Point() { bbb++; Console.WriteLine("생성"+ bbb); } public int bbb = 0; // static int bbb = 0;v // 스택틱하면 값이 더해진다 } class jks { static void Main() { Point pt = new Point(); Point pt1 = new Point(); } } 배열////// usi..
-
인터페이스(interface) 와 추상화클래스(abstract) 예제.NET/C# Basic 2008. 10. 14. 17:03
using System; namespace test_cal { interface IAdd { int Add(int i, int j); } interface IMnus { int Minus(int i, int j); } abstract class abMethod { public int Add(int i , int j) { int tot = i +j; return tot; } public abstract int Minus(int i ,int j); } class NewabMethod : abMethod { public override int Minus(int i, int j) { int m = i -j; return m; } } class NewInter : IAdd, IMnus { public int Ad..
-
C# Delegate와 Event 중요.NET/C# Basic 2008. 10. 13. 14:07
모르겠으니까 예제 외우자 낄낄낄~~~!!! [8.Delegate와 Event예제 \ delegate.cs] using System; class MainApp { public delegate void Mix(string s); // 델리게이트 선언 public static void Coffee(string s) { Console.WriteLine("this Coffee is Mixed with {0} ", s); } public static void CoCoa(string s) { Console.WriteLine("this CoCoa is Mixed with {0} ", s); } public static void Main() { Mix Tea = new Mix(Coffee); //할당된 델리게이트는 Co..
-
Console.Read() 와 Console.ReadLine() 차이.NET/C# Basic 2008. 10. 10. 20:12
using System; class whileTest { public static void Main() { bool ugiy = false; bool fool = false; Console.WriteLine("정신 교정 프로그램"); while (!(ugiy && fool)) { Console.WriteLine("당신은 잘생겼습니까? y/n"); if(Console.ReadLine() == "n") //
-
흐름 제어 예제 기본문법 if for while swich foreach break continue.NET/C# Basic 2008. 10. 10. 20:11
using System; class GenderTest { public static void Main() { Console.WriteLine("아유보이? (y)/(n)"); char gender = (char)Console.Read(); if( gender == 'y') Console.WriteLine("남자이시군요"); else if (gender == 'n') Console.WriteLine("여자이시군요"); else Console.WriteLine("잘못된 성별을 입력하셨습니다"); } } using System; class cyon { public static void Main() { Console.WriteLine("요일을 입력하세요"); char day = (char)Console.Read(..
-
연산자 오버로딩 - 인덱스.NET/C# Basic 2008. 10. 10. 17:27
class Point { public int x; public int y; public Point(int x, int y) { this.x = x; this.y = y; } public override string ToString() { //(x,y)값 return String.Format("({0},{1})",x,y); } // + 연산자 메서드 public static Point operator +(Point pt1, Point pt2) { return (new Point(pt1.x + pt2.x, pt1.y + pt2.y)); } // - 연산자 메서드 public static Point operator -(Point pt1, Point pt2) { return (new Point(pt1.x - p..
-
C# 사용 개념 대충 순서 대충보는거 대충.NET/C# Basic 2008. 10. 10. 14:40
///////////////////////////////// 콘솔 ////////////////////////////////////// using System; using System.Collections.Generic; using System.Text; using Calculator; // 추가~~~ namespace ConsoleApplication37 { class Program { static void Main(string[] args) { int i = int.Parse(Console.ReadLine()); int j = int.Parse(Console.ReadLine()); Cal c1 = new Cal(); int k = c1.Add(i,j); int o = c1.Minus(i,j); } }..
-
C# 정정맴버.NET/C# Basic 2008. 10. 10. 14:37
정적 메서드 메서드에도 정적(static)으로 적용할 수 있다 정적 메서드는 주로 정적 데이터 멤버를 다룰 때 사용 public static string GetInstCount() { // 정적(static) 데이터를 다룬다. } 정적 메서드에서는 인스턴스(instance)를 다룰 수 없기 때문에 다음과 같은 몇 가지 제약이 있정적 멤버만 사용할 수 있고, 인스턴스 변수나 메서드는 사용할 수 없다. 정적 메서드에서 this 키워드를 쓸 수 없다 인스턴스 메서드에서는 인스턴스 멤버와 정적 멤버를 둘 다 사용할 수 있다 정적 멤버는 클래스에 하나만 정의되는 멤버로, 모든 인스턴스에서 공유되는 멤버 class Point { // 생성자 정의 public Point() { nInstance++; // 인스턴스 ..
-
클래스 관련 예제.NET/C# Basic 2008. 10. 10. 02:25
//////// 우리가 이런예제를 보고 따라치면 자동으로 코딩도하면서 이해가되지요~ 책보다는쉽게합시다 //////// using System; class Profile { private int Age = 23; private string Name = "전광식"; private string Phone = "333-5765"; public void PrintInfo() { Console.WriteLine("{0}",Name); Console.WriteLine("{0}",Age); Console.WriteLine("{0}",Phone); } } class Access { public static void Main() { Profile my = new Profile(); my.PrintInfo(); } } us..
-
상봉이 문제.NET/C# Basic 2008. 10. 9. 14:05
배경 컴퓨터 과학에서 문제들은 종종 불분명한 문제들에 속하거나 분류된다. (풀리지 않은 문제, 풀수 없는 문제, 순환되는 문제) 이 문제에서는 누군가 체계화 하여 가능한 모든 입력에 대한 결과가 알려지지 않은 algorithm의 특성을 분석할것이다. 문제 다음 algorithm을 따라서 풀어보라. ================================ 1.input n 2.print n 3.if n=1 then STOP 4.if n is 홀수 then n을 3n+1로 바꾼다. 5.else n을 n/2로 바꾼다. 6.위의 2번으로 돌아가서 반복한다. ================================ 만약 n을 22로 입력하면 22 11 34 17 52 26 13 40 20 10 5 16 8 4..
-
정적맴버의 이해 인스턴스.NET/C# Basic 2008. 10. 8. 17:35
using System; // 정적 class Point { public Point() { nlnstance++; //Console.WriteLine("{0}",Point.nlnstance);//static변수값누적 Console.WriteLine("{0}",this.nlnstance);// 인스턴스변수누적안됨 } // public static int nlnstance =0; // static 를 없해고 함 public int nlnstance = 0; } class Class1 { static void Main() { // Console.WriteLine("{0}",Point.nlnstance); // 정적인것 Point obj1= new Point(); Point obj2= new Point(); P..
-
C# 메서드.NET/C# Basic 2008. 10. 7. 17:06
/*메서드 C# 메서드는 리턴형, 메서드 이름, 메서드 인자로 구성 메서드 구현 코드는 메서드 선언 부분 다음에 위치하며, return 문은 메서드를 종료하고 결과 값을 리턴할 때 사용 * * using System; class Test { // 메서드 정의 public static int Max( int v1, int v2 ) { // 인자 값 비교 후, 큰 값을 리턴합니다. return ( v1 < v2 ) ? v2 : v1; } static void Main() { // 메서드 부르기 Console.WriteLine( "MAX(100,200) : {0}", Max( 100, 200 ) ); // 200 } } * using System; class Test { // 메서드 정의 public int ..