퇴근5분전

< 실행 화면 >

게임 채팅 처럼 아래서 위로 올라가는 건뎅...
새로 시작해서 첫줄을 넣었을때 나오는 화면임.

그 당시 복잡한 방법으로 만든기억이남.
우선 구현은 해보고 그 다음 더 좋은 방법으로 만들어가기 위해서...

// 소스
string[] storeChat = new string[50];
const  byte  byViewLineCount = 20;
int   iCurrentLine =  0;


 private void textBox1_KeyDown(object sender, System.Windows.Forms.KeyEventArgs e)
  {

   if(e.KeyCode == Keys.Enter)
   {
    if(this.textBox1.Text.CompareTo("") == 0 || this.textBox1.Text.CompareTo( string.Empty) == 0)
     return;
    SaveViewChat( this.textBox1.Text);
    ViewStrings();
    this.textBox1.Clear();
   }
  }

  private void SaveViewChat( string Chat)
  {
      
   if(iCurrentLine + 1 == storeChat.Length)
   {
    Swap();
    iCurrentLine = storeChat.Length - 2;
   }
   storeChat[iCurrentLine] =  Chat;
   iCurrentLine++;
  }

 private void ViewStrings()
  {
   System.Text.StringBuilder sb  = new System.Text.StringBuilder();

   int count  = ( iCurrentLine > byViewLineCount ? byViewLineCount: iCurrentLine);
   if(iCurrentLine < byViewLineCount)
   {
    for( int i = 0; i < byViewLineCount - iCurrentLine ; i ++)
    {
     sb.Append( Environment.NewLine );
    }
   }
   for(int i  =  count - 1 ; i >= 0 ; i--)
   {
    sb.Append( string.Format("{0} : {1}" , i , storeChat[(iCurrentLine-1) - i] + Environment.NewLine) );    
   }   
   
   this.textBox2.Text = sb.ToString().Substring(0, sb.Length -2);
   this.textBox2.Select(this.textBox2.TextLength, 0);
   this.textBox2.ScrollToCaret();
   this.textBox2.Update();
  }
  private void Swap()
  {
   string strTemp = string.Empty;
   for(int i = 0; i < storeChat.Length - 1 ; i ++)
    storeChat[i] = storeChat[i + 1];
  }



소스가 간단하니 주석은 안넣음.

총 50라인을 저장하고
이중에 최근 20개를 보여줌.







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

트리뷰] 트리뷰 노드추가하기 1  (0) 2009.05.09
Html Table 파싱  (0) 2009.05.09
드레그 앤 드랍! (2)  (0) 2009.05.09
드래그 앤 드랍!  (0) 2009.05.09
Ms-Sql을 띠우자!  (0) 2009.05.08