簡體   English   中英

網格視圖在C#中的應用

[英]Application of grid view in c#

我的項目中有一些Forms和一些Custom User控件(包含dataGridView的自定義下拉窗口)。在Form(購買順序)中有一個dataGridView控件,當單擊一個單元格時,在該單元格中選擇一行時,將顯示該自定義下拉窗口下拉窗口或單擊ENTER鍵,這些值(即,網格視圖行中的單元格值)將移至FORM的先前網格視圖。 我嘗試了這個,無法獲得預期的輸出...任何人的幫助...

自定義用戶控件中的代碼部分:-

#region Declarations
    public string grdItmName;
    public string grdItmDisrption;
    public string grdItmCata;
    public string grdItmPrice;
    #endregion

    #region prop
    public string gridfield1
    {
        get
        {
            return grdItmName;
        }
        set { grdItmName = value; }
    }

    public string gridfield2
    {
        get
        {
            return grdItmDisrption;
        }
        set { grdItmDisrption = value; }
    }
    public string gridfield3
    {
        get
        {
            return grdItmCata;
        }
        set { grdItmCata = value; }
    }
    public string gridfield4
    {
        get
        {
            return grdItmPrice;
        }
        set { grdItmPrice = value; }
    }
#endregion

private void gridItemlist_KeyDown(object sender, KeyEventArgs e)
    {
        if (e.KeyCode.Equals(Keys.Enter))
        {

            try
            {
                grdItmName = gridItemlist.SelectedRows[0].Cells[0].Value.ToString();
                grdItmDisrption = gridItemlist.SelectedRows[0].Cells[1].Value.ToString();
                grdItmCata = gridItemlist.SelectedRows[0].Cells[2].Value.ToString();
                grdItmPrice = gridItemlist.SelectedRows[0].Cells[3].Value.ToString();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }


}

FORM網格視圖的代碼段:-

private void gridPrchaseOrder_CellMouseClick(object sender, DataGridViewCellMouseEventArgs e)

{


customDropDown.Show();
customDropDown.BringToFront();`// display in front of other controls`
customDropDown.Select();
customDropDown.Location = gridPrchaseOrder.PointToScreen(gridPrchaseOrder.GetCellDisplayRectangle(e.ColumnIndex, e.RowIndex, false).Location);




        try
        {   
          int n = gridPrchaseOrder.Rows.Add();
          gridPrchaseOrder.Rows[n].Cells[0].Value = customDropDown.gridfield1;
            gridPrchaseOrder.Rows[n].Cells[1].Value = customDropDown.gridfield2;
            gridPrchaseOrder.Rows[n].Cells[2].Value = customDropDown.gridfield3;
            gridPrchaseOrder.Rows[n].Cells[3].Value = customDropDown.gridfield4;
            customDropDown.Focus();
        }
        catch (Exception ex) { MessageBox.Show(ex.Message); }

    }    

用戶/自定義控件中的一項觀察結果刪除上面顯示的代碼,並使用以下名稱聲明屬性。 您不需要gridfield1,gridfield2,gridfield3和gridfield4。 擁有這樣的變量名不是一個好習慣。

public string grdItmName { get; set; }
public string grdItmDisrption { get; set; }
public string grdItmCata { get; set; }
public string grdItmPrice { get; set; }

現在在表單代碼中

        try
        {   
          int n = gridPrchaseOrder.Rows.Add();
          gridPrchaseOrder.Rows[n].Cells[0].Value = customDropDown.grdItmName;
            gridPrchaseOrder.Rows[n].Cells[1].Value = customDropDown.grdItmDisrption;
            gridPrchaseOrder.Rows[n].Cells[2].Value = customDropDown.grdItmCata;
            gridPrchaseOrder.Rows[n].Cells[3].Value = customDropDown.grdItmPrice;
            customDropDown.Focus();
        }
        catch (Exception ex) { MessageBox.Show(ex.Message); }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM