2017-10-06 74 views
-4

我正在開發使用C#和Gridview單元格雙擊事件沒有被解僱的winform應用程序。我已經給我下面的源代碼Giridview單元格雙擊事件沒有被解僱?

private void gridView2_DoubleClick(object sender, EventArgs e) 
    { 
     try 
     { 
      GridView view = (GridView)sender; 
      DataTable getGrid = (DataTable)Popup_Grid.DataSource; 
      int RowVal = gridView2.FocusedRowHandle; 
      string FieldVal = ERPModule.isnull(Convert.ToString(gridView2.GetRowCellValue(RowVal, gridView2.Columns["DisplayName"])), ""); 

      if (RowVal != -1) 
      { 
       string SelectionStart = richTextBox1.Text.Substring(0, richTextBox1.SelectionStart); 
       string SelectionEnd = richTextBox1.Text.Substring(richTextBox1.SelectionStart, richTextBox1.Text.Length - richTextBox1.SelectionStart); 
       richTextBox1.Text = SelectionStart + FieldVal + SelectionEnd; 
       Displaydata_Popup_Container.Parent.FindForm().Close(); 
      } 
      else 
      { 
       Displaydata_Popup_Container.Parent.FindForm().Close(); 
      } 
     } 
     catch (Exception ex) 
     { 
      Utility.ErrorLog.WriteToFile(DataFile.errorFile, "PrintList : gridView2_DoubleClick()", ex.Message); 
     } 

    } 
+2

你想要什麼,以簡化 – iamsankalp89

+0

有沒有可能傳遞類型消息?對象變量和字段只有變化。所以請讓我知道任何可能性,以簡化此代碼 – Raj

回答

2

提取共同的邏輯功能(可擴展方法)

public static class DataTableExtensions 
{ 
    public static int CountChequeStatusOf(this DataTable table, string condition) 
    { 
     var count = table.Compute("Count(ChequeStatus)", $"ChequeStatus = '{condition}'"); 
     return count == DbNull.Value ? 0 : (int)count; 
    } 
} 

然後「再利用」它

var table = (DataTable)grid_cheque.DataSource; 

this.lblNew.Text = table.CountChequeStatusOf("New").ToString(); 
this.lbl_Issued.Text = table.CountChequeStatusOf("Issued").ToString(); 
this.lblCancel.Text = table.CountChequeStatusOf("Cancelled").ToString(); 
this.lbldishonour.Text = table.CountChequeStatusOf("DisHonour").ToString(); 
+0

我已經使用您的代碼,並得到錯誤,如「擴展方法必須在頂級靜態類中定義; DataTableExtensions是嵌套類」 – Raj

+0

@Raj -pretty清除錯誤消息; )。將'DataTableExtensions'類放到當前類之外或放到單獨的文件中。 – Fabio

+0

是的,我做了,但是顯示錯誤DBNull在當前內容中不存在。請你簡單地給我一下嗎? – Raj