퇴근5분전

객체지향 을 처음 관심을 둘때
내가 만든 객체도 어떤 이벤트에 대한 동작을 해야 하지 않는가? 라는 의문이 생기면서
방법을 찾다가 한참만에 찾았었음.

Vs2003으로 되있는걸 보면... 웹할때인듯 한데 C#시작하고 1년이 넘어서인가보다.

이벤트란?  객체에 어떤행동이나 상태변화등에 특정 행동을 정의 함으로써
그 행동이나 상태변화에 대응하기 쉽게함.

곧 사람이 외부에서 때렸을때 악! 소리를 낸다라든가?
밥을 먹다보니 위가 가득 차서 배부르다는 느낌을 받는다든가?


EventObject    evtObj = new EventObject();
 ...
evtObj.intState_EventHandle  +=new intState(evtObj_intState_EventHandle);
...
private void evtObj_intState_EventHandle() // 이벤트 발생시 두번째 호출
{
    MessageBox.Show("값을 바꿨네!");
}

 evtObj.EventTarget = 10;  // 이벤트 발생 시점이 됨.

 delegate  void intState();

 class    EventObject
 {
  int  eventTarget =  0;

  public EventObject()
  {
   this.intState_EventHandle +=new intState(StateChange);
  }

  public int EventTarget
  {
   get { return this.eventTarget;}
   set {
     int i = this.eventTarget;
     
     this.eventTarget = value;

     if( i != this.eventTarget && intState_EventHandle != null)
       intState_EventHandle();
   }
  }
 
  public event intState     intState_EventHandle;

  public  void  StateChange()
  {
    MessageBox.Show("누가 바꾸래!");              // 이벤트 발생시 처음 호출

  }

 }


이벤트가 발생시 이벤트 처리자로 추가된 순서대로 호출이 됨.


// 아참 떠오르는건 엄준일님 이벤트 강좌를 보고 이걸 했던것 같음.

'# 2) .Net ( Vs 2005 ) > 기타' 카테고리의 다른 글

Ms-Sql을 띠우자!  (0) 2009.05.08
데이타테이블 컬럼위치 바꾸기  (0) 2009.05.08
Enum 과 Enum 비트 마스크  (0) 2009.05.08
Xml 직렬화...  (0) 2009.05.08
정규식] 똑같은 글자가 몇개?  (2) 2009.05.08

마우스를 올리고, 클릭하면 해당 row의 바탕색이 바뀜.
header1 header2 header3
dataRow 1 dataRow 1 dataRow 1
dataRow 2 dataRow 2 dataRow 2
dataRow 3 dataRow 3 dataRow 3
dataRow 4 dataRow 4 dataRow 4
소스 파일 :

'# 2) .Net ( Vs 2005 ) > WebForm' 카테고리의 다른 글

철호야! 공부하자!  (0) 2009.05.08
리피터 사용!!  (0) 2009.05.08
기존의 웹프로젝트 페이지를 그대로 이용하기.  (0) 2009.05.08
트리뷰 노드 추가 재귀 함수.  (0) 2009.05.02
페이징 컨트롤러  (0) 2009.05.01

Enum 클래스...


enum 선언
    enum  변수명 { 인자1, 인자2,... 인자n };
 주의 : 문자열이라도 "인자1" 표기가 아님.


사용
    고정된 코드성 데이타 표현을 이용하거나 style같은 데이타 표현시 이용.


Enum.Format( typeof( enum변수 ) ,    enum변수.선택인자 ,  stringFormat )

stringFormat : 식 문자열은 "G","g","X","x","F","f","D" 또는 "d"만 될 수 있습니다.


비트 마스크 이용


enum GoFlag {left= 0x0001, right = 0x0010, up = 0x0100, down = 0x1000};

 GoFlag  aaa  = GoFlag.left | GoFlag.down

입력 받았을시..

 추출..


if( aaa & GoFlag.left == GoFlag.left )
{ left 처리 }

if( aaa & GoFlag.down != GoFlag.down )
{ down 처리 }
...

프로세스 흘려보내면 됨.


'# 2) .Net ( Vs 2005 ) > 기타' 카테고리의 다른 글

데이타테이블 컬럼위치 바꾸기  (0) 2009.05.08
이벤트  (0) 2009.05.08
Xml 직렬화...  (0) 2009.05.08
정규식] 똑같은 글자가 몇개?  (2) 2009.05.08
PWD 암호화 객체.  (0) 2009.05.08


xml직렬화메서드...
{
 serializeObject  xobj = new serializeObject();
 XmlWriter xWriter = new XmlTextWriter("myInfo.xml", Encoding.Unicode);
 //여기에 객체 타입을 넣습니다.
 XmlSerializer serializer = new XmlSerializer(xobj.GetType());
 serializer.Serialize(xWriter, xobj);   
 xWriter.Close();
}


 // xml직렬화 될 class
 [Serializable()]
 public class serializeObject
 {
  public string aaa  = "aaa";
  public string bbb  = "bbb";
  public string ccc  = "ccc";

//  public  string AA
//  {
//   get{return aaa;}
//   set{aaa = value;}
//  }
//
//  public  string BB
//  {
//   get{return bbb;}
//   set{bbb = value;}
//  }
//
//  public  string CC
//  {
//   get{return ccc;}
//   set{ccc = value;}
//  }
 }


--> xml직렬화 된 결과 파일 내용.

<?xml version="1.0" encoding="utf-16" ?>
<serializeObject xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
 <aaa>aaa</aaa>
 <bbb>bbb</bbb>
 <ccc>ccc</ccc>
</serializeObject>


// 참고 : Form이나 Control로 해봤는데 안되넹...


이것도 오래전에 따라 해보던 것임.
지금 만들라고 하면..
리플렉션을 이용해서 직접 만들것 같음.

'# 2) .Net ( Vs 2005 ) > 기타' 카테고리의 다른 글

이벤트  (0) 2009.05.08
Enum 과 Enum 비트 마스크  (0) 2009.05.08
정규식] 똑같은 글자가 몇개?  (2) 2009.05.08
PWD 암호화 객체.  (0) 2009.05.08
인터페이스와델리게이트조합1  (2) 2009.05.08

문자열이 몇개가 포함되어 있는지 체크 하는 기능 


this.richTextBox1.Text = "abc 가나다 abc가나다 가abc나다 가나다 ab ac bc  가나abc다abc";

System.Text.RegularExpressions.Regex  rg = new System.Text.RegularExpressions.Regex("abc");

MessageBox.Show( rg.Matches( this.richTextBox1.Text , 0).Count.ToString() );

결과창 : 5  

정규식 관련해서는 훈스닷넷에 레몬님께 도움을 많이 받았음.

오래전에 질문글에 올라온걸 답변하면서 작성한 코드임.
간단한 것정도만 아직 가능함.
어려운건 역시 어려움...

'# 2) .Net ( Vs 2005 ) > 기타' 카테고리의 다른 글

Enum 과 Enum 비트 마스크  (0) 2009.05.08
Xml 직렬화...  (0) 2009.05.08
PWD 암호화 객체.  (0) 2009.05.08
인터페이스와델리게이트조합1  (2) 2009.05.08
DB로컬 연결시 문구  (0) 2009.05.02

this.textBox2.Text = FormsAuthentication.HashPasswordForStoringInConfigFile( this.textBox1.Text, "sha1");
this.textBox3.Text =  FormsAuthentication.HashPasswordForStoringInConfigFile(this.textBox1.Text,"md5"); 
암호화 하는 메서드임

db상에서 패스워드를 쉽게 확인 불가능하게 해야 할때 사용( 주로 요새 쓰는듯 )

바뀐 데이타로 pws를 비교하면 됨.
ex)
// 1111  을 암호화 한 문자열임.
if( "011C945F30CE2CBAFC452F39840F025693339C42" == FormsAuthentication.HashPasswordForStoringInConfigFile( this.textBox4.Text, "sha1") )
{
 MessageBox.Show("빙고");
}
else
{
 MessageBox.Show("땡!");
}



두가지 암호화 타입이 있음 sha1, md5

둘중 하나로 쓰면 됨.

복호 안됨 ( 사실 해본적도 없음 ).

'# 2) .Net ( Vs 2005 ) > 기타' 카테고리의 다른 글

Xml 직렬화...  (0) 2009.05.08
정규식] 똑같은 글자가 몇개?  (2) 2009.05.08
인터페이스와델리게이트조합1  (2) 2009.05.08
DB로컬 연결시 문구  (0) 2009.05.02
큐브~  (0) 2009.05.02

DrawRect(  Graphics.FromHwnd( this.pictureBox1.Handle ) , new Pen( Color.Red ,2f), new Rectangle( 1, 1, 10,10));
DrawRect(  Graphics.FromHwnd( this.pictureBox2.Handle ) , new Pen( Color.Blue ,2f), new Rectangle(0, 0, 10,10));


private void DrawRect( Graphics ggg, Pen  pen, Rectangle rect)
{
        ggg.DrawRectangle(pen, rect);
}


Graphics를 테스트 해보면... 해당 컨트롤에서 추출된 Graphics 객체에 그려짐...

2D GDI + 가 궁금할때!!! 테스트해봤던 내용임.
어디에 그려지는가~

'# 2) .Net ( Vs 2005 ) > WinForm' 카테고리의 다른 글

데이타 테이블 그리기.  (2) 2009.05.08
메뉴] 즐겨찾기 읽어들이기  (0) 2009.05.08
테트리스  (0) 2009.05.02
아날로그 시계  (0) 2009.05.02
HTML 자동 정렬 프로그램  (0) 2009.05.02


기존에 사용되던 프로젝트 페이지를 수정하지 않고
데이타만 읽어올수 있게 새로운 프로젝트에 포함시키기 위한 트릭?


 새프로젝트에서  iframe을 이용해 기존페이지를 보이게 하고 타이머로
기존 페이지의 데이타를 가져옴.

 

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
 <head>
  <title>팝업창</title>
  <meta name="GENERATOR" content="Microsoft Visual Studio .NET 7.1">
  <meta name="ProgId" content="VisualStudio.HTML">
  <meta name="Originator" content="Microsoft Visual Studio .NET 7.1">
  <script type="text/javascript" src="trace.js"></script>
  <script type="text/javascript">
   function returnValue()
   {       
     var frm = document.getElementById("iframe1");
    
    var fDoc = frm.contentWindow;
    
    opener.document.all.TextBox1.value  =  fDoc.document.all.TextBox1.value;
    tm  = setTimeout("returnValue()", 100);
   }

   function aa()
   {
    alert( event.keyCode );
   }
   
  </script>
 </head>
 <body onload="returnValue();" bgColor="#33cccc">
  <input id="aa" type="text">
  <iframe id="iframe1" src="WebForm2.aspx"></iframe>
  <div  id="aaaaa" style="background-Color:#abcdef">
  asdf
  </div>
 </body>
</html>

어떤 팝업창에 뜨게되는 페이지에서 특정 값을 타이머를 통해 얻어올수 있음.

'# 2) .Net ( Vs 2005 ) > WebForm' 카테고리의 다른 글

철호야! 공부하자!  (0) 2009.05.08
리피터 사용!!  (0) 2009.05.08
Table Row-> Select, MouseOver, Out관련  (0) 2009.05.08
트리뷰 노드 추가 재귀 함수.  (0) 2009.05.02
페이징 컨트롤러  (0) 2009.05.01

사용자 삽입 이미지
인터페이스란?
 다양한 객체간에 공통으로 사용할 메세지을 정의하고, 그 구현을 상속받은 객체에 역할을 미루며
이 메세지는 각각의 객체에 접근시 해당 인터페이스를 이용하게 되면, 객체타입에 관계없이 인터페이스를 이용해 메세지호출이 가능해짐.

델리게이트란?
  대리자 또는 위임자로써 메세지 처리를 다른 대상으로 미뤄주면서 처리할 데이타를 전달 할 수
있는 녀석임.

 위 둘을 조합하여 할수 있는 일이 있다. 위 그림처럼 메인 폼에서 유저컨트롤들이 이용될시

유저컨트롤에 특정 메세지호출과 함께 이뤄지는 처리를 유저컨트롤에서와 메인폼에서
서로 나눠서 처리할수가 있게 됨.

 이게 어떤 일을 할수 있는가?

유저컨트롤이 가지게 되는 데이타들을 폼상에서 데이타를 처리하고자 할경우

이때 유저컨트롤이 다수가 되고 호출 메세지 공통으로 존재하고
이에 대한 데이타처리를 메인폼에서 통일하고자 할 경우
위와 같은 구조로 처리하게 되면 데이타를 처리를 한곳으로 모아줄수 있으며

나중에 유지보수를 한다고 할 경우
인터페이스와 델리게이트를 안다고 할 때, 좀더 손댈곳이 적어짐을 알수 있음.

간다한 예제를 만듬 :


ps : 이 예제는 훈스닷넷 회원분이 질문하던 내용에 대한 해결 방법으로 그 아이디어에 대한
예제를 만들어서 보내드림.




'# 2) .Net ( Vs 2005 ) > 기타' 카테고리의 다른 글

정규식] 똑같은 글자가 몇개?  (2) 2009.05.08
PWD 암호화 객체.  (0) 2009.05.08
DB로컬 연결시 문구  (0) 2009.05.02
큐브~  (0) 2009.05.02
XML 컨트롤...  (0) 2009.05.02

WinApi.co.kr 에 존재하는 C언어에 테트리스를 분석해서 만들어낸 테트리스임. (버그 다수 존재 함)

프로그래밍을 하게 되면 반듯이 작성해야지 했던 게임이었는데
만들고 나니 어찌나 기쁘던지...

자료구조도 알고리즘도 프로그램 로직 자체도 서툴렀던 시절
C언어로 된 테트리스 로직을 분석하고 만들어내었을때 비약적인 발전을 할수 있었음.
GDI+라든가 배열사용이라든가, 게임시 동작을 처리 하는 부분에 대해서라든가.
이것도 역시 바둑판 그리기가 사용된다. 배경을 그리고 블럭을 그리는데 사용됨.

사용자 삽입 이미지

<< 테트리스 화면 >>

테트리스 소스임


 

'# 2) .Net ( Vs 2005 ) > WinForm' 카테고리의 다른 글

메뉴] 즐겨찾기 읽어들이기  (0) 2009.05.08
그래픽스. 어디에 그려지는가?  (0) 2009.05.08
아날로그 시계  (0) 2009.05.02
HTML 자동 정렬 프로그램  (0) 2009.05.02
FND를 이용한 디지탈 시계  (0) 2009.05.02