• 1405/07/19

رفع مشکل بوجود آمده در جلسه 62 :

سلام استاد

اگر لیست رو یک برج در نظر بگیریم که بعد از حذف یک عضو یا همون طبقه برج رو هوا میموند ، میتونیم بعد از هر حذف یکاری کنیم که بعد از برداشتن یک طبقه ، طبقات بالایی یک طبقه بیان پایین و بعدش هم میتونیم یک حلقه بزنیم که طبقه ی آخر رو پیدا کنیم که برای افزودن هم دیگه مشکلی نداشته باشیم.

private void cbxSub_SelectedIndexChanged(object sender, EventArgs e)
{
    switch (cbxSub.SelectedIndex)
    {
        case 0:
            {
                Data.maxrow = 5;
                break;
            }
        case 1:
            {
                Data.maxrow = 10;
                break;
            }
        case 2:
            {
                Data.maxrow = 20;
                break;
            }
    }
}
internal class Data
{
    public static int row = 0;
    public static int maxrow = 5;
    public static Person[] plist = new Person[21];
}
private void Refresh()
{
    dgvList.Rows.Clear();
    foreach (Person p in Data.plist)
    {
        if (p != null)
            dgvList.Rows.Add(p.Pname, p.Plastname, p.Page, p.Prole, p.Pnumber);
    }
}
int _id= 0;
private void btnRemove_Click(object sender, EventArgs e)
{
    if (dgvList.SelectedRows.Count == 1)
    {
        var index = dgvList.CurrentRow.Index;
        Person p = Data.plist[index];
        if (MessageBox.Show($"Are You sure you want to Remove {p.Pname} {p.Plastname}?", "Waring", MessageBoxButtons.YesNo) == DialogResult.Yes)
        {
            Data.plist[index] = null;
            while (index < Data.maxrow)
            {
                Data.plist[index] = Data.plist[(index + 1)];
                index++;
            }
            while (true)
            {
                if (Data.plist[_id] == null)
                {
                    Data.row = _id;
                    _id = 0;
                    break;
                }
                _id++;
            }
            Refresh();
        }
    }
    else if(dgvList.SelectedRows.Count < 1)
    {
        MessageBox.Show("Select a Person first", "Guide", MessageBoxButtons.OK);
    }
    else if(dgvList.SelectedRows.Count > 1)
    {
        MessageBox.Show("Too many people are selected", "Guide", MessageBoxButtons.OK);
    }
            
}

 

  • 1405/07/19
  • ساعت 15:55

بسیار عالی