c# 입문 초보입니다.
버튼을 누르면 10개의 라벨에 각각 1~50의 랜덤 숫자가 나타나게 하고 싶은데요
라벨 각각을 쓰자니 할 수 는 있지만 좀 깔끔하게 하나로 통합하고 싶습니다
예를 들면 라벨 1 부터 라벨 10 까지 있을때
Random rand = new Random(1, 50);
int A = 1;
labelA.Text = rand.Next(1, 45).ToString();
뭐 이런식으로 하고 자동으로 A 를 2로 만들고 루프를 또 돌고
뭐 암튼 이런식으로 할 수 있는 방법이 없을까요?
없다면 복붙이나 해야죠..
안녕하세요?
; 복붙 방법보다는 아래와 같이 메서드 2개를 만들어 간단하게 호출할 수 있습니다.
; 로직 -> 처음에 라벨 Text를 모두 지워놓고, 하나씩 번호를 써나갑니다.
; 그룹박스를 하나 써서 라벨을 배치합니다.
그룹박스 : grpNumbers
1. 버튼이 눌리면, 난수를 루프만큼 구해서 SetLabel 메서드에 표시를 요청합니다.
private void button1_Click(object sender, EventArgs e)
{
// 라벨을 초기화합니다.
ClearLabel();
// 난수를 배정합니다.
Random rand = new Random();
int result = 0;
for (int loop = 0; loop < 5; loop++)
{
result = rand.Next(1, 50);
SetLabel(result);
}
// 리소스를 반환 합니다.
rand = null;
}
2. 그룹박스에서 라벨을 찾아, 요청받은 숫자를 표시합니다.
private void SetLabel(int number)
{
foreach (Control control in grpNumbers.Controls)
{
if (control is Label)
{
if (control.Text.Trim() == "")
{
control.Text = number.ToString();
return;
}
}
}
}
3. 라벨의 텍스트를 초기화 합니다.
private void ClearLabel()
{
foreach (Control control in grpNumbers.Controls)
{
if (control is Label)
{
Label label = control as Label;
label.Text = "";
}
}
}
도움이 되시길 바랍니다.
감사합니다.
written by
legend
C과외/C#과외/VB과외 프로그래밍 과외.서울인천경기-방문강의.기타전국-화상강의.제대로 체계적으로 배우고싶은분들.15년경력 프리랜서.삼성/포스코/한진 등. 서울,인천,경기,분당,일산,과천,산본,부천,부평,평촌,안산,안양,광명,용인,시흥,성남,수원,평택,오산,화성,동탄,천안,아산, c#프로그래밍1:1과외, 15년 이상 프로젝트 경력의 프리랜서 직접 강의, c#프로그래밍 과외, c#프로그래밍교육, IT·컴퓨터·컴퓨터과외비·프로그래밍과외, c# 강좌, c# 프로그래밍, 데이터베이스, 데이터베이스 프로그래밍, db, DB, 과외비,컴퓨터1:1,컴퓨터개인지도,컴퓨터실무과외,컴퓨터과외,컴퓨터1:1과외, 서울,인천,경기,부천,안산,분당,일산,천안,과천,산본,안양,광명,평촌,수원,평택,오산,용인,부평,시흥,성남,화성,동탄
광주,부산,대구,대전,마산,창원,울산,전주,군산,원주,강릉,충청남도,충청북도,강원도,경상남도,경상북도,전라남도,전라북도,제주도
'좋은질문' 카테고리의 다른 글
C# public form과 private form_load의 질문입니다. (0) | 2014.09.05 |
---|---|
C# Label For문 진행중 실시간으로 보이게하기 (0) | 2014.09.04 |
C# 텍스트파일 Dataset으로 읽어오기 (0) | 2014.09.01 |
C# 이벤트 속성을 직접 코드로 작성하였을 때 (0) | 2014.08.31 |
C#의 OLEDB로 엑셀파일을 생성해서 내용을 쓰려고 하는데요. (0) | 2014.08.31 |