목록 로테이션???
간단하게 1,2,3,4,5,6,7,8,9,10 이란 목록을
1~10 ~ 다시 1부터 시작 ~ 10... 계속...
이런식으로 루프 되듯이 자료를 열람하는 로직을 만들때..
예 ) 이미지 검색... ,문자열 흘리기등...
페이지 검색등... 도 괜찮을것 같공...
아래는 Source는 위에 나열된 10개의 숫자.
보여줄 View는 TextBox 4개로 지정..
1,2,3,4 가 처음 보이고 > 누르면 다음 페이지 또는 증가 숫자만큼.. 다음 리스트가 출력
< 반대로...
간단한 알고리즘이지만... 문득.. 떠올라서 글을 써봄.
처음 문자열 흘리기 할때나. 게임 챗팅처럼 만든다고 index 값을 복잡하게 계산했던때보다는 훨씬 깔끔함..
나중에 class로 묶어두면 요기조기 써먹을데가 있을것도 같은데...
public partial class Form1 : Form
{
const int viewCnt = 4; // 보여줄 View갯수.
int totalCnt = 0;
public Form1()
{
InitializeComponent();
string[] source = this.textBox5.Text.Split(',');
View(source);
}
int[] ViewArray = new int[viewCnt] {0,1,2,3};
private void button1_Click(object sender, EventArgs e)
{
LoopItem( +4 );
}
private void button2_Click(object sender, EventArgs e)
{
LoopItem( -4 );
}
private void LoopItem(int leftRight)
{
string[] source = this.textBox5.Text.Split(',');
totalCnt = source.Length;
for (int i = 0; i < viewCnt; i++)
{
ViewArray[i] = (ViewArray[i] + leftRight) % totalCnt;
if (ViewArray[i] < 0)
{
ViewArray[i] = 10 + ViewArray[i];
}
}
View(source);
}
private void View(string[] source)
{
this.textBox1.Text = source[ViewArray[0]];
this.textBox2.Text = source[ViewArray[1]];
this.textBox3.Text = source[ViewArray[2]];
this.textBox4.Text = source[ViewArray[3]];
}
}
'# 2) .Net ( Vs 2005 ) > 기타' 카테고리의 다른 글
IFormattable (0) | 2010.07.15 |
---|---|
트리노드 검색해서 확장하기... (0) | 2010.03.17 |
사용자 정의 문자열 포멧 지정하기 ( IFormatProvider, ICustomFormatter ) (0) | 2009.08.17 |
인터페이스 활용? (0) | 2009.08.11 |
코드리스트 팝업 창 관련 로직. (0) | 2009.08.11 |