런타임에 최대 20 개의 버튼을 생성했습니다.C# .net을 사용하여 배열의 단추를 제거하는 방법?
이벤트가 발생하면 처음에는 5 개의 버튼을 그대로두고 15 개의 버튼을 제거하고 싶습니다. 그렇게하려면 어떻게해야합니까?
다른 이벤트가 호출 될 때마다 같은 버튼이 이전과 같이 추가됩니다.
런타임에 최대 20 개의 버튼을 생성했습니다.C# .net을 사용하여 배열의 단추를 제거하는 방법?
이벤트가 발생하면 처음에는 5 개의 버튼을 그대로두고 15 개의 버튼을 제거하고 싶습니다. 그렇게하려면 어떻게해야합니까?
다른 이벤트가 호출 될 때마다 같은 버튼이 이전과 같이 추가됩니다.
배열 대신 목록을 사용해야합니다. 이 같은 것을 할 때 작성하는 것 같아요 :
다음List<button> buttons = new List<button>();
for(int i = 0; i < 20; i++){
Button b = new Button();
...
this.Controls.Add(button);
buttons.Add(button);
}
다시 응용 프로그램에서 모든 버튼을 제거하기를, 단순히 수행이와
this.Controls.Remove(buttons[i]);
buttons.RemoveAt(i);
는 지난 15 개 버튼을 제거, 설정, 시도 다음
for(int i = 19; i > 4; i--){
this.Controls.Remove(buttons[i]);
buttons.RemoveAt(i);
것은 더 높은 인덱스 모든 요소가 일을 얻을 것을 의미합니다 목록 내부 요소를 삭제하면 때문에, 20 항목의 루프 시작하자, 아래쪽으로 일을 기억 eir index 을 1로 변경했습니다.
단추를 제거하려면 컨트롤 모음에서 제거해야합니다.
사용 this.Contols.Remove(<buttonControl>);
이 런타임에 버튼을 추가하는 방법과 비슷합니다. .add
대신 .remove
을 사용합니다.