2017-10-02 15 views
-1

사용자가 양식을 채우고 계산하는 프로그램이 있습니다. 그러면 사용자가 요약에 도달하면 데이터에 입력 한 모든 사용자가 표시됩니다. 더 많은 사용자가 데이터를 입력하면 동일한 lbl (lblUsers)을 사용하여 요약에 간단히 추가됩니다. 가장 최근에 작성된 레이블을 가장 최근에 입력 한 항목을 삭제할 수 있습니다.중복 된 레이블 삭제

using System; 
using System.Collections; 
using System.Collections.Generic; 
using System.ComponentModel; 
using System.Data; 
using System.Drawing; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 
using System.Windows.Forms; 

namespace LifeInsurance 
{ 
public partial class frmMain : Form 
{ 
    double commissionRate; 
    double insuranceAmount; 
    double totalAmount; 
    int numberOfCustomers; 
    double totalInsuranceDollars; 
    double totalCommission; 



    private void btnClearAll_Click(object sender, EventArgs e) 
    { 
     lblUsers.Text = ""; 
    } 

    public frmMain() 
    { 
     InitializeComponent(); 
    } 





    private void frmMain_Load(object sender, EventArgs e) 
    { 

    } 

    private void btnCalculate_Click(object sender, EventArgs e) 
    { 
     try 
     { 
      string firstName = txtFirstName.Text; 
      string lastName = txtLastName.Text; 
      insuranceAmount = int.Parse(txtInsuranceAmount.Text); 
     }catch (Exception) 
     { 
      MessageBox.Show("You must enter all details"); 
     } 
     if(insuranceAmount>= 1000) 
     { 
      commissionRate = 0.005; 
      totalAmount = insuranceAmount * 0.005; 
     } 
     if (insuranceAmount >= 100000) 
     { 
      commissionRate = 0.0010; 
      totalAmount = insuranceAmount * 0.0010; 
     } 
     if (insuranceAmount >= 1000000) 
     { 
      commissionRate = 0.0015; 
      totalAmount = insuranceAmount * 0.0015; 
     } 
     totalInsuranceDollars += totalAmount; 
     totalCommission += commissionRate; 
     numberOfCustomers += 1; 
     lblUsers.Text += "Name: "+txtFirstName.Text +" "+ txtLastName.Text+"   
     "+ "Payout Amount: "+totalAmount+Environment.NewLine; 
     lblUsers.Text += "Total Policies: " + numberOfCustomers+" " + "Total 
     Insurance Dollars Earned: " + totalInsuranceDollars+" " + "Total 
     Commission Earned: " + totalCommission+Environment.NewLine; 
    } 
    private void btnSummary_Click(object sender, EventArgs e) 
    { 
     lblUsers.Visible = true ; 
    } 
    private void btnClear_Click(object sender, EventArgs e) 
    { 

     //remove one label 
    } 

    } 
} 

enter image description here

+0

당신은 레이블이 어떻게 생겼는지의 예를 게시 할 수 없습니다 : 그렇다면이 도움이된다면

은 참조? 아니면 적어도 몇 가지 항목 후에 텍스트가 어떻게 생겼는지? – MAW74656

+0

@ MAW74656 샘플 출력 이미지를 추가했습니다. 이름이 –

+0

인 마지막 라벨을 삭제하고 싶습니다. 원하는 것을 찾아서 삭제하기가 정말 어려울 것입니다. 나는 두 가지 접근법을 제안 할 것이다. 1) 텍스트 영역을 사용하고 삭제하는 대신 이전 항목을 화면 밖으로 스크롤하십시오. 2) 매번 패널에 새 레이블을 추가 한 다음 레이블을 반복하여 검색 용어가 포함 된 레이블을 삭제할 수 있습니다. – MAW74656

답변

0

나는 당신이 당신의 라벨이 마지막 항목을 제외한 모든 표시하려면 제대로 이해하고 사용자가 클릭 "요약"맞습니다 때, 미안 해요? 따라서 스크린 샷에서 3 개의 항목을 표시하지만 2 개의 항목 만 표시되기를 원하십니까?

public static void btnSummary_Click(object sender, EventArgs e) 
    { 
     string currentText = lblUsers.Text; 
     int positionOfLastEntry = currentText.LastIndexOf("Name:"); 
     string textWithoutLastEntry = currentText.Substring(0, positionOfLastEntry); 
     lblUsers.Text = textWithoutLastEntry; 
     lblUsers.Visible = true; 
    }