동일한 작업을 수행하지만 다른 객체를 수행해야하는 2 개의 버튼 마녀가 있다고 가정 해보십시오. 버튼 클릭 중복 코드를 피하는 효율적인 방법
현재 나는이 같은 방법에 필요한 모든 참조를 전달 해요 : 그 작업을 수행하는 다른,보다 효율적인 방법이 있는지 궁금 해서요private void sub1_add_to_db_btn_Click(object sender, EventArgs e)
{
Add_Substance_To_Database(
substanse1, sub1_add_to_db_btn, sub2_add_to_db_btn, sub1_found_in_db_list,
sub2_found_in_db_list, false, sub1_listBox, sub2_listBox);
}
private void sub2_add_to_db_btn_Click(object sender, EventArgs e)
{
Add_Substance_To_Database(
substanse2, sub2_add_to_db_btn, sub1_add_to_db_btn, sub2_found_in_db_list,
sub1_found_in_db_list, false, sub2_listBox, sub1_listBox);
}
. 감사.
편집 :
이 내 코드의 일부처럼 보이는 방법이며 나를 미치게 만드는!
예를 들어private void sub1_add_to_db_btn_Click(object sender, EventArgs e)
{
Add_Substance_To_Database(substanse1, sub1_add_to_db_btn, sub2_add_to_db_btn,
sub1_found_in_db_list, sub2_found_in_db_list, false, sub1_listBox, sub2_listBox);
}
private void sub2_add_to_db_btn_Click(object sender, EventArgs e)
{
Add_Substance_To_Database(substanse2, sub2_add_to_db_btn, sub1_add_to_db_btn,
sub2_found_in_db_list, sub1_found_in_db_list, false, sub2_listBox, sub1_listBox);
}
private void sub1_edit_name_btn_Click(object sender, EventArgs e)
{
Add_Substance_To_Database(substanse1, sub1_add_to_db_btn, sub2_add_to_db_btn,
sub1_found_in_db_list, sub2_found_in_db_list, true, sub1_listBox, sub2_listBox);
}
private void sub2_edit_name_btn_Click(object sender, EventArgs e)
{
Add_Substance_To_Database(substanse2, sub2_add_to_db_btn, sub1_add_to_db_btn,
sub2_found_in_db_list, sub1_found_in_db_list, true, sub2_listBox, sub1_listBox);
}
private void sub1_delete_from_db_btn_Click(object sender, EventArgs e)
{
Delete_Substance_From_DB(sub1_listBox,
sub2_listBox,sub2_list_is_from_file,sub1_delete_from_db_btn,
sub2_delete_from_db_btn);
}
private void sub2_delete_from_db_btn_Click(object sender, EventArgs e)
{
Delete_Substance_From_DB(sub2_listBox,
sub1_listBox,sub1_list_is_from_file,sub2_delete_from_db_btn,
sub1_delete_from_db_btn);
}
: 나는 물질을 삭제하려면 , 나는 ... 목록 모두에서 삭제하고 다른 목록에서 제거, 다음 물질 등으로 선택을 변경해야
동일한 이벤트 처리기를 여러 단추까지 연결 한 다음 보낸 사람을 기준으로 실행할 Add_Substance_To_Database 변형을 선택할 수 있습니다. 그러나 실제로 substance1과 기타 변수 인수는 드롭 다운 목록과 같은 컨트롤에서 가져온 것처럼 UI를 변경하는 것이 좋습니다. 표시 할 수있는 GUI 샘플이 있습니까? – dash
개인 정보 보호를 위해 GUI를 게시하지 않는 것이 좋습니다. 그 이유는 편의상, 필자는 나란히 비교 된 2 가지 물질 목록을 가져야 만한다는 것입니다. 하나의 목록에서 하나의 물질을 각각 선택하면 다른 목록의 다른 선택된 물질과 관련된 비교 작업이 수행됩니다. 또한 각 목록 옆에는 삭제, 편집, 데이터베이스에 추가 등의 단추가 있습니다 ... 각 단추에는 위에서 쓴 것과 같은 방법이 있습니다. – Igor
왜 버튼과 목록 상자를 함수에 전달합니까? substance1 목록과 substance2 목록에 무엇이 있는지보고 싶어하는 것으로 이해할 수있는 목록 상자. 엄밀히 말하면 사용자가 각 목록에서 하나씩 두 개의 항목을 선택하도록 허용하면 선택한 항목과 목록을 메서드에 전달할 수 있습니다. 예를 들어 Add_Substance_To_Database 내의 해당 항목에 대한 각 목록을 검색 할 수 있습니다. – dash