2010-04-09 5 views

답변

4

새 양식에서 나머지 DataGridView를 숨기시겠습니까? 예를 들어 DataGridViewRow를 양식에 전달하면 새 양식에서 직접 값을 가져올 수 있습니다. 그러나 그것도 그들에게 DataGridView에 대한 액세스를 제공합니다.

DataGridViewRow dgr = dataGridView.Rows[0]; 
MyForm myForm = new MyForm(dgr); // now the form has the Row of information. But it can also access the entire DataGridView as it is available in the DataGridViewRow. 

DataGridView에 대한 액세스를 제거하려면 행의 값을 컨테이너에 넣고 해당 컨테이너를 전달하십시오. ArrayList, List 등과 같이 내장 된 것을 사용할 수도 있고 사용자 정의 컨테이너를 만들 수도 있습니다.

+0

@smoore : 실제로 업데이트하겠습니다. – galford13x

+0

+1 : 좋은 대답과 논평이 철회되었습니다. –

+0

+1 처음에는 Array 목록으로 설정했지만 최적의 해결책인지는 확실하지 않았습니다. 당신의 도움을 주셔서 감사합니다. – Ryan

1

데이터 세트의 각 열에 대한 속성을 가진 클래스를 만들 것입니다. 그런 다음 클래스 목록을 사용하여 모든 것을 저장할 수 있으며 목록의 각 요소는 행이됩니다. 그런 다음 DataGridView.DataSource = yourList을 설정할 수 있습니다. 열을 전달해야하는 경우 목록의 해당 요소를 통과하십시오.

실제로 데이터 용 클래스를 만들 필요가없는 경우 DataGridViewRow을 함수에 전달하면됩니다.

+0

+1 : 동의합니다. DataGridViewRow를 전달하면 전체 DataGridView가 새 양식에 제공된다는 점에 유의하십시오. – galford13x

+0

무슨 뜻인지 잘 모르겠습니까? dataGridView.Rows [i]를 새로운 변수에 할당하는 대신 인수로 전달하면됩니까? 행에 대한 참조를 전달하지만 전체 표에는 전달되지 않습니다. –

+0

새로운 MyForm (dataGridView.Rows [0]); 새 양식에는 DataGridViewRow가 있습니다. 그런 다음 DataGridViewRow.DataGridView 속성을 통해 전체 DataGridView에 액세스 할 수 있습니다. 위에 보여준 것처럼 새로운 변수에 할당하면 똑같은 일을합니다. – galford13x

관련 문제