private void EquipmentView_SortCompare( object sender, DataGridViewSortCompareEventArgs e ) { if ( e.Column.Index == EquipmentView_Name.Index ) { int id1 = (int)EquipmentView[EquipmentView_ID.Index, e.RowIndex1].Value; int id2 = (int)EquipmentView[EquipmentView_ID.Index, e.RowIndex2].Value; e.SortResult = KCDatabase.Instance.MasterEquipments[id1].CategoryType - KCDatabase.Instance.MasterEquipments[id2].CategoryType; if ( e.SortResult == 0 ) { e.SortResult = id1 - id2; } } else { e.SortResult = ( (IComparable)e.CellValue1 ).CompareTo( e.CellValue2 ); } if ( e.SortResult == 0 ) { e.SortResult = ( EquipmentView.Rows[e.RowIndex1].Tag as int? ?? 0 ) - ( EquipmentView.Rows[e.RowIndex2].Tag as int? ?? 0 ); } e.Handled = true; }
void DataGridView_SortCompare(object sender, DataGridViewSortCompareEventArgs e) { //verifica se é a mesma coluna, se não for... ignora if(e.Column.Index == this.Index) { double cellValue1 = Double.Parse(Unimake.Utilities.OnlyNumbers(e.CellValue1).ToString()); double cellValue2 = Double.Parse(Unimake.Utilities.OnlyNumbers(e.CellValue2).ToString()); e.SortResult = cellValue1.CompareTo(cellValue2); e.Handled = true; } }
private void dgvWirelessNetworks_SortCompare(object sender, DataGridViewSortCompareEventArgs e) { if (e.Column.Index == 4) { int a = int.Parse(e.CellValue1.ToString()); int b = int.Parse(e.CellValue2.ToString()); // If the cell value is already an integer, just cast it instead of parsing e.SortResult = a.CompareTo(b); e.Handled = true; } }
private void dataGridSymbols_SortCompare(object sender, DataGridViewSortCompareEventArgs e) { if (e.Column.Index > 0) { e.Handled = true; int val1; int val2; Int32.TryParse(e.CellValue1.ToString(), out val1); Int32.TryParse(e.CellValue2.ToString(), out val2); e.SortResult = val1 - val2; } }
void dataGridViewStorage_SortCompare(object sender, DataGridViewSortCompareEventArgs e) { if (e.Column == ColumnDevicePosition) { e.SortResult = StringUtility.NaturalCompare(e.CellValue1.ToString(), e.CellValue2.ToString()); e.Handled = true; } else { e.Handled = false; } }
/// <summary> /// manejador del evento SortCompare de la grilla /// </summary> /// <param name="sender">Objeto donde se generó el evento --> la grilla</param> /// <param name="e">Argumento del evento que contiene información sobre las filas y columnas que se comparan</param> private void dgrid_SortCompare(object sender, DataGridViewSortCompareEventArgs e) { // si la columna es de tipo int, entonces realiza el ordenamiento de números enteros if (e.Column.ValueType == typeof(int)) { // obtiene el valor entero de cada celda int value1 = int.Parse(e.CellValue1.ToString()); int value2 = int.Parse(e.CellValue2.ToString()); // compara dichos valores usando el método CompareTo de la clase int. La clase int implemente IComparable<int> e.SortResult = value1.CompareTo(value2); // indica que se realizó el manejo del evento e.Handled = true; } // si la columna es de tipo decimal, entonces realiza el ordenamiento de números decimales else if (e.Column.ValueType == typeof(decimal)) { // obtiene el valor decimal de cada celda decimal value1 = decimal.Parse(e.CellValue1.ToString()); decimal value2 = decimal.Parse(e.CellValue2.ToString()); // compara dichos valores usando el método CompareTo de la clase decimal. La clase decimal implemente IComparable<decimal> e.SortResult = value1.CompareTo(value2); // indica que se realizó el manejo del evento e.Handled = true; } // si la columna es de tipo DateTime, entonces realiza el ordenamiento de fechas else if (e.Column.ValueType == typeof(DateTime)) { // obtiene el valor fecha de cada celda DateTime value1 = DateTime.Parse(e.CellValue1.ToString()); DateTime value2 = DateTime.Parse(e.CellValue2.ToString()); // compara dichos valores usando el método CompareTo de la clase DateTime. La clase DateTime implemente IComparable<DateTime> e.SortResult = value1.CompareTo(value2); // indica que se realizó el manejo del evento e.Handled = true; } }
private void dgvLeases_SortCompare(object sender, DataGridViewSortCompareEventArgs e) { string val1 = e.CellValue1?.ToString() ?? ""; string val2 = e.CellValue2?.ToString() ?? ""; //TODO: This is inefficient, requires potentially processing the same IPAddress or Date values over and over again // It doesn't seem to cause noticable delays, so low priority, but I'd still like to refactor // this to re-use parsed values. int result = 0; if (val1 == "" && val2 != "") { result = -1; } else if (val1 != "" && val2 == "") { result = 1; } else if (val1 == "" && val2 == "") { result = 0; } //neither value is empty. Now we can process special columns else if (e.Column.HeaderText == "IP Address") { uint v1 = (uint)System.Net.IPAddress.NetworkToHostOrder((int)System.Net.IPAddress.Parse(val1).Address); uint v2 = (uint)System.Net.IPAddress.NetworkToHostOrder((int)System.Net.IPAddress.Parse(val2).Address); result = v1.CompareTo(v2); } else if (e.Column.HeaderText == "Expires") { DateTime v1 = DateTime.Parse(val1); DateTime v2 = DateTime.Parse(val2); result = v1.CompareTo(v2); } //default else { result = val1.CompareTo(val2); } e.SortResult = result; e.Handled = true; }
private void ShipView_SortCompare( object sender, DataGridViewSortCompareEventArgs e ) { if ( e.Column.Index == ShipView_Name.Index ) { e.SortResult = KCDatabase.Instance.MasterShips[(int)ShipView.Rows[e.RowIndex1].Cells[e.Column.Index].Tag].AlbumNo - KCDatabase.Instance.MasterShips[(int)ShipView.Rows[e.RowIndex2].Cells[e.Column.Index].Tag].AlbumNo; } else if ( e.Column.Index == ShipView_Exp.Index ) { e.SortResult = (int)e.CellValue1 - (int)e.CellValue2; if ( e.SortResult == 0 ) //for Lv.99-100 e.SortResult = (int)ShipView[ShipView_Level.Index, e.RowIndex1].Value - (int)ShipView[ShipView_Level.Index, e.RowIndex2].Value; } else if ( e.Column.Index == ShipView_HP.Index || e.Column.Index == ShipView_Fuel.Index || e.Column.Index == ShipView_Ammo.Index || e.Column.Index == ShipView_Aircraft1.Index || e.Column.Index == ShipView_Aircraft2.Index || e.Column.Index == ShipView_Aircraft3.Index || e.Column.Index == ShipView_Aircraft4.Index || e.Column.Index == ShipView_Aircraft5.Index || e.Column.Index == ShipView_AircraftTotal.Index ) { Fraction frac1 = (Fraction)e.CellValue1, frac2 = (Fraction)e.CellValue2; double rate = frac1.Rate - frac2.Rate; if ( rate > 0.0 ) e.SortResult = 1; else if ( rate < 0.0 ) e.SortResult = -1; else e.SortResult = frac1.Current - frac2.Current; } else if ( e.Column.Index == ShipView_Fleet.Index ) { if ( (string)e.CellValue1 == "" ) { if ( (string)e.CellValue2 == "" ) e.SortResult = 0; else e.SortResult = 1; } else { if ( (string)e.CellValue2 == "" ) e.SortResult = -1; else e.SortResult = ( (string)e.CellValue1 ).CompareTo( e.CellValue2 ); } } else { e.SortResult = (int)e.CellValue1 - (int)e.CellValue2; } if ( e.SortResult == 0 ) { e.SortResult = (int)ShipView.Rows[e.RowIndex1].Tag - (int)ShipView.Rows[e.RowIndex2].Tag; if ( ShipView.SortOrder == SortOrder.Descending ) e.SortResult = -e.SortResult; } e.Handled = true; }
void DataGridViewObject_SortCompare(object sender, DataGridViewSortCompareEventArgs e) { if (e.Column.Index == sizeColumn.Index) { VDI vdi1 = ((VDIRow)dataGridViewVDIs.Rows[e.RowIndex1]).VDI; VDI vdi2 = ((VDIRow)dataGridViewVDIs.Rows[e.RowIndex2]).VDI; long diff = vdi1.virtual_size - vdi2.virtual_size; e.SortResult = diff > 0 ? 1 : diff < 0 ? -1 : 0; e.Handled = true; } }
protected virtual void OnSortCompare (DataGridViewSortCompareEventArgs e) { DataGridViewSortCompareEventHandler eh = (DataGridViewSortCompareEventHandler)(Events [SortCompareEvent]); if (eh != null) eh (this, e); }
private void sharedFilesDataGridView_SortCompare(object sender, DataGridViewSortCompareEventArgs e) { switch (e.Column.Name) { case "RatingIcon": e.SortResult = ((byte)sharedFilesDataGridView.Rows[e.RowIndex1].Cells[e.Column.Name].Tag + ((RandomTag<string>)sharedFilesDataGridView.Rows[e.RowIndex1].Tag).SortTag).CompareTo((byte)sharedFilesDataGridView.Rows[e.RowIndex2].Cells[e.Column.Name].Tag + ((RandomTag<string>)sharedFilesDataGridView.Rows[e.RowIndex2].Tag).SortTag); e.Handled = true; break; case "FileSize": // 2007-05-17 T.Norad: fix for big files e.SortResult = ((long)sharedFilesDataGridView.Rows[e.RowIndex1].Cells[e.Column.Name].Tag + ((RandomTag<string>)sharedFilesDataGridView.Rows[e.RowIndex1].Tag).SortTag).CompareTo((long)sharedFilesDataGridView.Rows[e.RowIndex2].Cells[e.Column.Name].Tag + ((RandomTag<string>)sharedFilesDataGridView.Rows[e.RowIndex2].Tag).SortTag); e.Handled = true; break; case "lastRequest": // get the first value to compare from grid object date1 = sharedFilesDataGridView.Rows[e.RowIndex1].Cells[e.Column.Name].Tag; // second value from grid object date2 = sharedFilesDataGridView.Rows[e.RowIndex2].Cells[e.Column.Name].Tag; e.SortResult = SortHelper.compareDates(date1, date2); // if the datetime equal we use the sort tag to prevent flickering sort results if (e.SortResult == 0) { e.SortResult = ((RandomTag<string>)sharedFilesDataGridView.Rows[e.RowIndex1].Tag).SortTag.CompareTo(((RandomTag<string>)sharedFilesDataGridView.Rows[e.RowIndex2].Tag).SortTag); } e.Handled = true; break; } }
private void dataGridView1_SortCompare(object sender, DataGridViewSortCompareEventArgs e) { try { if (e.Column.Name.Equals("CSize")) { //if (e.CellValue1.Equals(e.CellValue2)) { // e.SortResult = -1; // e.Handled = true; //} String[] data1 = MyReg.Reg_GetFirstMutiString(e.CellValue1.ToString(), "(\\d+\\.?\\d*)+\\s*(GB|MB)"); String[] data2 = MyReg.Reg_GetFirstMutiString(e.CellValue2.ToString(), "(\\d+\\.?\\d*)+\\s*(GB|MB)"); double ddata1 = double.Parse(data1[0]); int flag1 = data1[1].Equals("MB") ? 0 : 1; double ddata2 = double.Parse(data2[0]); int flag2 = data2[1].Equals("MB") ? 0 : 1; int flag = flag1 - flag2; if (flag == 0) { //单位相同比大小 flag = (ddata1 - ddata2) >= 0 ? 1 : -1; } e.SortResult = flag; e.Handled = true; } else if (e.Column.Name.Equals("CHot") || e.Column.Name.Equals("CNum")) {//热度排序和index排序 int data1 = MyReg.Reg_GetFirstNum(e.CellValue1.ToString(), "(\\d+)"); int data2 = MyReg.Reg_GetFirstNum(e.CellValue2.ToString(), "(\\d+)"); e.SortResult = data1 - data2; e.Handled = true; //不要会炸 } } catch (Exception ee) { Console.WriteLine("我日了狗"+ee.Message); } // 如果是学号或成绩列,则按浮点数处理 //if (e.Column.Name == "大小") //{ // if(data1.) // e.SortResult = (Convert.ToDouble(e.CellValue1) - Convert.ToDouble(e.CellValue2) > 0) ? 1 : (Convert.ToDouble(e.CellValue1) - Convert.ToDouble(e.CellValue2) < 0) ? -1 : 0; // e.Handled = true; //} ////否则,按字符串比较 //else //{ // return; //} }
private void connectionsDataGridView_SortCompare(object sender, DataGridViewSortCompareEventArgs e) { switch (e.Column.Name) { case "IPAddress": e.SortResult = ((uint)connectionsDataGridView.Rows[e.RowIndex1].Cells[e.Column.Name].Tag + ((RandomTag<IPAddress>)connectionsDataGridView.Rows[e.RowIndex1].Tag).SortTag).CompareTo((uint)connectionsDataGridView.Rows[e.RowIndex2].Cells[e.Column.Name].Tag + ((RandomTag<IPAddress>)connectionsDataGridView.Rows[e.RowIndex2].Tag).SortTag); e.Handled = true; break; case "EnqueuedCommands": e.SortResult = ((int)connectionsDataGridView.Rows[e.RowIndex1].Cells[e.Column.Name].Tag + ((RandomTag<IPAddress>)connectionsDataGridView.Rows[e.RowIndex1].Tag).SortTag).CompareTo((int)connectionsDataGridView.Rows[e.RowIndex2].Cells[e.Column.Name].Tag + ((RandomTag<IPAddress>)connectionsDataGridView.Rows[e.RowIndex2].Tag).SortTag); e.Handled = true; break; case "Port": case "Sent": case "Received": case "SentCommands": case "ReceivedCommands": e.SortResult = ((long)connectionsDataGridView.Rows[e.RowIndex1].Cells[e.Column.Name].Tag + ((RandomTag<IPAddress>)connectionsDataGridView.Rows[e.RowIndex1].Tag).SortTag).CompareTo((long)connectionsDataGridView.Rows[e.RowIndex2].Cells[e.Column.Name].Tag + ((RandomTag<IPAddress>)connectionsDataGridView.Rows[e.RowIndex2].Tag).SortTag); e.Handled = true; break; } }
private void dataGridViewUpdates_SortCompare(object sender, DataGridViewSortCompareEventArgs e) { Alert alert1 = (Alert)dataGridViewUpdates.Rows[e.RowIndex1].Tag; Alert alert2 = (Alert)dataGridViewUpdates.Rows[e.RowIndex2].Tag; if (e.Column.Index == ColumnMessage.Index) { e.SortResult = Alert.CompareOnTitle(alert1, alert2); e.Handled = true; } else if (e.Column.Index == ColumnReleaseDate.Index) { e.SortResult = Alert.CompareOnDate(alert1, alert2); e.Handled = true; } else if (e.Column.Index == ColumnWebPage.Index) { e.SortResult = Alert.CompareOnWebPage(alert1, alert2); e.Handled = true; } else if (e.Column.Index == ColumnAppliesTo.Index) { e.SortResult = Alert.CompareOnAppliesTo(alert1, alert2); e.Handled = true; } }
private void dgvMethod_SortCompare(object sender, DataGridViewSortCompareEventArgs e) { if (e.CellValue1 != null && e.CellValue2 != null) { string valueString1 = e.CellValue1.ToString(); string valueString2 = e.CellValue2.ToString(); if (e.Column.Name.Equals("ColCodeNum")) { float value1 = 0f; float value2 = 0f; float.TryParse(valueString1, out value1); float.TryParse(valueString2, out value2); e.SortResult = Comparer.DefaultInvariant.Compare(value1, value2); } else { e.SortResult = string.Compare(valueString1, valueString2); } } e.Handled = true; }
private void customSortCompare(object sender, DataGridViewSortCompareEventArgs e) { int temp; bool isNumeric = int.TryParse(e.CellValue1.ToString(), out temp); if (!isNumeric) return; int a = int.Parse(e.CellValue1.ToString()), b = int.Parse(e.CellValue2.ToString()); // If the cell value is already an integer, just cast it instead of parsing e.SortResult = a.CompareTo(b); e.Handled = true; }
private void dataGridView1_SortCompare(object sender, DataGridViewSortCompareEventArgs e) { //sort the numeric column if (!e.Column.Name.Equals("Name") && !e.Column.Name.Equals("Image")) { e.SortResult = (Convert.ToDouble(e.CellValue1) - Convert.ToDouble(e.CellValue2) > 0) ? 1 : (Convert.ToDouble(e.CellValue1) - Convert.ToDouble(e.CellValue2) < 0) ? -1 : 0; } // if the value is same, then sort by IV if (e.SortResult == 0 && e.Column.Name.Equals("IV %")) { e.SortResult = Convert.ToInt32(this.dataGridView1.Rows[e.RowIndex1].Cells["IV %"].Value.ToString()) - Convert.ToInt32(this.dataGridView1.Rows[e.RowIndex2].Cells["IV %"].Value.ToString()); } e.Handled = true; }
private void downloadsDataGridView_SortCompare(object sender, DataGridViewSortCompareEventArgs e) { switch (e.Column.Name) { case "RatingIcon": e.SortResult = ((byte)downloadsDataGridView.Rows[e.RowIndex1].Cells[e.Column.Name].Tag + ((RandomTag<string>)downloadsDataGridView.Rows[e.RowIndex1].Tag).SortTag).CompareTo((byte)downloadsDataGridView.Rows[e.RowIndex2].Cells[e.Column.Name].Tag + ((RandomTag<string>)downloadsDataGridView.Rows[e.RowIndex2].Tag).SortTag); e.Handled = true; break; case "FileSize": case "Completed": case "Remaining": // 2007-05-20 T.Norad // fix for big files e.SortResult = ((long)downloadsDataGridView.Rows[e.RowIndex1].Cells[e.Column.Name].Tag + ((RandomTag<string>)downloadsDataGridView.Rows[e.RowIndex1].Tag).SortTag).CompareTo((long)downloadsDataGridView.Rows[e.RowIndex2].Cells[e.Column.Name].Tag + ((RandomTag<string>)downloadsDataGridView.Rows[e.RowIndex2].Tag).SortTag); e.Handled = true; break; case "Status": // 2008-03-20 Nochbaer case "Sources": case "lastReception": // 2007-06-10 T.Norad // fix: Sources are int-values e.SortResult = ((int)downloadsDataGridView.Rows[e.RowIndex1].Cells[e.Column.Name].Tag + ((RandomTag<string>)downloadsDataGridView.Rows[e.RowIndex1].Tag).SortTag).CompareTo((int)downloadsDataGridView.Rows[e.RowIndex2].Cells[e.Column.Name].Tag + ((RandomTag<string>)downloadsDataGridView.Rows[e.RowIndex2].Tag).SortTag); e.Handled = true; break; case "ProgressImage": e.SortResult = ((float)downloadsDataGridView.Rows[e.RowIndex1].Cells[e.Column.Name].Tag + ((RandomTag<string>)downloadsDataGridView.Rows[e.RowIndex1].Tag).SortTag / 100).CompareTo((float)downloadsDataGridView.Rows[e.RowIndex2].Cells[e.Column.Name].Tag + ((RandomTag<string>)downloadsDataGridView.Rows[e.RowIndex2].Tag).SortTag / 100); e.Handled = true; break; case "lastSeen": // get the first value to compare from grid object date1 = downloadsDataGridView.Rows[e.RowIndex1].Cells[e.Column.Name].Tag; // second value from grid object date2 = downloadsDataGridView.Rows[e.RowIndex2].Cells[e.Column.Name].Tag; e.SortResult = SortHelper.compareDates(date1, date2); // if the datetime equal we use the sort tag to prevent flickering sort results if (e.SortResult == 0) { e.SortResult = ((RandomTag<string>)downloadsDataGridView.Rows[e.RowIndex1].Tag).SortTag.CompareTo(((RandomTag<string>)downloadsDataGridView.Rows[e.RowIndex2].Tag).SortTag); } e.Handled = true; break; } }
/// <summary> /// Handles the automatic sorting of the AlertsGridView for the non-string columns /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void GridViewAlerts_SortCompare(object sender, DataGridViewSortCompareEventArgs e) { Alert alert1 = (Alert)GridViewAlerts.Rows[e.RowIndex1].Tag; Alert alert2 = (Alert)GridViewAlerts.Rows[e.RowIndex2].Tag; if (e.Column.Index == ColumnDate.Index) { int SortResult = DateTime.Compare(alert1.Timestamp, alert2.Timestamp); e.SortResult = (GridViewAlerts.SortOrder == SortOrder.Descending) ? SortResult *= -1 : SortResult; e.Handled = true; } else if (e.Column.Index == ColumnSeverity.Index) { e.SortResult = Alert.CompareOnPriority(alert1, alert2); e.Handled = true; } }
private void sourcesDataGridView_SortCompare(object sender, DataGridViewSortCompareEventArgs e) { switch (e.Column.Name) { case "TypeIcon": e.SortResult = ((int)DateTime.Now.Subtract((DateTime)sourcesDataGridView.Rows[e.RowIndex1].Cells[e.Column.Name].Tag).TotalMinutes + ((RandomTag<string>)sourcesDataGridView.Rows[e.RowIndex1].Tag).SortTag).CompareTo((int)DateTime.Now.Subtract((DateTime)sourcesDataGridView.Rows[e.RowIndex2].Cells[e.Column.Name].Tag).TotalMinutes + ((RandomTag<string>)sourcesDataGridView.Rows[e.RowIndex2].Tag).SortTag); e.Handled = true; break; case "Queue": case "Type": e.SortResult = ((int)sourcesDataGridView.Rows[e.RowIndex1].Cells[e.Column.Name].Tag + ((RandomTag<string>)sourcesDataGridView.Rows[e.RowIndex1].Tag).SortTag).CompareTo((int)sourcesDataGridView.Rows[e.RowIndex2].Cells[e.Column.Name].Tag + ((RandomTag<string>)sourcesDataGridView.Rows[e.RowIndex2].Tag).SortTag); e.Handled = true; break; case "SentCommands": case "ReceivedCommands": e.SortResult = ((long)sourcesDataGridView.Rows[e.RowIndex1].Cells[e.Column.Name].Tag + ((RandomTag<string>)sourcesDataGridView.Rows[e.RowIndex1].Tag).SortTag).CompareTo((long)sourcesDataGridView.Rows[e.RowIndex2].Cells[e.Column.Name].Tag + ((RandomTag<string>)sourcesDataGridView.Rows[e.RowIndex2].Tag).SortTag); e.Handled = true; break; } }
private void ServerDataGrid_SortCompare(object sender, DataGridViewSortCompareEventArgs e) { //e.SortResult = 0; if (e.Column.Name == "Server") { e.SortResult = System.String.Compare(Convert.ToString(e.CellValue1), Convert.ToString(e.CellValue2)); e.Handled = true; } else if (e.Column.Name == "ID" || e.Column.Name == "TotalConnect" || e.Column.Name == "Connecting" || e.Column.Name == "ConnectError" || e.Column.Name == "ConnectTimeout" || e.Column.Name == "Continuous" ) { Int32 v1 = Convert.ToInt32(e.CellValue1); Int32 v2 = Convert.ToInt32(e.CellValue2); e.SortResult = (v1 == v2 ? 0 : (v1 < v2 ? -1 : 1)); } else if (e.Column.Name == "ErrorPercent") { String s1 = Convert.ToString(e.CellValue1); String s2 = Convert.ToString(e.CellValue2); Int32 v1 = s1.Length <= 1 ? 0 : Convert.ToInt32(Convert.ToDouble(s1.Substring(0, s1.Length - 1)) * 100); Int32 v2 = s2.Length <= 1 ? 0 : Convert.ToInt32(Convert.ToDouble(s2.Substring(0, s2.Length - 1)) * 100); e.SortResult = v1 == v2 ? 0 : v1 < v2 ? -1 : 1; } else if (e.Column.Name == "AvgLatency" || e.Column.Name == "AvgSpeed" || e.Column.Name == "MaxSpeed" || e.Column.Name == "Upload" || e.Column.Name == "Download" ) { String s1 = Convert.ToString(e.CellValue1); String s2 = Convert.ToString(e.CellValue2); long v1 = Str2Long(s1); long v2 = Str2Long(s2); e.SortResult = (v1 == v2 ? 0 : (v1 < v2 ? -1 : 1)); } if (e.SortResult == 0) { int v1 = listOrder[Convert.ToInt32(ServerDataGrid[0, e.RowIndex1].Value)]; int v2 = listOrder[Convert.ToInt32(ServerDataGrid[0, e.RowIndex2].Value)]; e.SortResult = (v1 == v2 ? 0 : (v1 < v2 ? -1 : 1)); if (e.SortResult != 0 && ServerDataGrid.SortOrder == SortOrder.Descending) { e.SortResult = -e.SortResult; } } if (e.SortResult != 0) { e.Handled = true; } }
// Ajout nouveau private void gridEmploye_SortCompare(object sender, DataGridViewSortCompareEventArgs e) { if (e.Column == gridEmploye.Columns[0]) { int a = int.Parse(e.CellValue1.ToString()), b = int.Parse(e.CellValue2.ToString()); // If the cell value is already an integer, just cast it instead of parsing e.SortResult = a.CompareTo(b); e.Handled = true; } }
private void ShipView_SortCompare( object sender, DataGridViewSortCompareEventArgs e ) { if ( e.Column.Name == ShipView_ShipType.Name ) { e.SortResult = KCDatabase.Instance.MasterShips[(int)ShipView.Rows[e.RowIndex1].Cells[0].Value].ShipType - KCDatabase.Instance.MasterShips[(int)ShipView.Rows[e.RowIndex2].Cells[0].Value].ShipType; } else { e.SortResult = ( (IComparable)e.CellValue1 ).CompareTo( e.CellValue2 ); } if ( e.SortResult == 0 ) { e.SortResult = (int)( ShipView.Rows[e.RowIndex1].Tag ?? 0 ) - (int)( ShipView.Rows[e.RowIndex2].Tag ?? 0 ); } e.Handled = true; }
private void RecordView_SortCompare( object sender, DataGridViewSortCompareEventArgs e ) { object tag1 = RecordView[e.Column.Index, e.RowIndex1].Tag; object tag2 = RecordView[e.Column.Index, e.RowIndex2].Tag; if ( tag1 != null && ( tag1 is double || tag1 is int ) && e.CellValue1 is int ) { double c1 = 0 , c2 = 0; if ( tag1 is double ) { c1 = (double)tag1; c2 = (double)tag2; } else if ( tag1 is int ) { c1 = (double)(int)e.CellValue1 / Math.Max( (int)tag1, 1 ); c2 = (double)(int)e.CellValue2 / Math.Max( (int)tag2, 1 ); } if ( Math.Abs( c1 - c2 ) < 0.000001 ) e.SortResult = (int)e.CellValue1 - (int)e.CellValue2; else if ( c1 < c2 ) e.SortResult = -1; else e.SortResult = 1; e.Handled = true; } else if ( tag1 is string ) { e.SortResult = ( (IComparable)tag1 ).CompareTo( tag2 ); e.Handled = true; } else if ( tag1 is int ) { e.SortResult = (int)tag1 - (int)tag2; e.Handled = true; } if ( !e.Handled ) { e.SortResult = ( (IComparable)e.CellValue1 ?? 0 ).CompareTo( e.CellValue2 ?? 0 ); e.Handled = true; } if ( e.SortResult == 0 ) { e.SortResult = (int)( RecordView.Rows[e.RowIndex1].Tag ?? 0 ) - (int)( RecordView.Rows[e.RowIndex2].Tag ?? 0 ); } }
/// <summary> /// Handles the automatic sorting of the AlertsGridView for the non-string columns /// </summary> private void dataGridViewUpdates_SortCompare(object sender, DataGridViewSortCompareEventArgs e) { Alert alert1 = (Alert)dataGridViewUpdates.Rows[e.RowIndex1].Tag; Alert alert2 = (Alert)dataGridViewUpdates.Rows[e.RowIndex2].Tag; if (e.Column.Index == ColumnDate.Index) { int sortResult = DateTime.Compare(alert1.Timestamp, alert2.Timestamp); e.SortResult = (dataGridViewUpdates.SortOrder == SortOrder.Descending) ? sortResult *= -1 : sortResult; e.Handled = true; } }
private void QuestView_SortCompare( object sender, DataGridViewSortCompareEventArgs e ) { if ( e.Column.Index == QuestView_State.Index ) { e.SortResult = ( e.CellValue1 == null ? 2 : ( (bool)e.CellValue1 ? 1 : 0 ) ) - ( e.CellValue2 == null ? 2 : ( (bool)e.CellValue2 ? 1 : 0 ) ); } else { e.SortResult = ( e.CellValue1 as int? ?? 99999999 ) - ( e.CellValue2 as int? ?? 99999999 ); } if ( e.SortResult == 0 ) { e.SortResult = ( QuestView.Rows[e.RowIndex1].Tag as int? ?? 0 ) - ( QuestView.Rows[e.RowIndex2].Tag as int? ?? 0 ); } e.Handled = true; }
private void scannerView_SortCompare(object sender, DataGridViewSortCompareEventArgs e) { //scannerGrid.Columns[0].HeaderCell.SortGlyphDirection = SortOrder.Ascending; //Sort numeric columns like numbers if (e.Column == scannerGrid.Columns["maxrateColumn"] || e.Column == scannerGrid.Columns["channelColumn"]) { //Remove anything after a space string value1 = e.CellValue1.ToString(); if (value1.IndexOf(' ') > 0) value1 = value1.Remove(value1.IndexOf(' ')); string value2 = e.CellValue2.ToString(); if (value2.IndexOf(' ') > 0) value2 = value2.Remove(value2.IndexOf(' ')); if (Convert.ToInt32(value1) > Convert.ToInt32(value2)) { e.SortResult = 1; } else if (Convert.ToInt32(value1) < Convert.ToInt32(value2)) { e.SortResult = -1; } else { e.SortResult = 0; } e.Handled = true; } else if (e.Column == scannerGrid.Columns["rssiColumn"]) { var cell1 = e.CellValue1 as int[]; var cell2 = e.CellValue2 as int[]; if (cell1 != null && cell1.Length > 0 && cell2 != null && cell2.Length > 0) { if (cell1[cell1.Length - 1] > cell2[cell2.Length - 1]) e.SortResult = 1; else if (cell1[cell1.Length - 1] < cell2[cell2.Length - 1]) e.SortResult = -1; else e.SortResult = 0; e.Handled = true; } } //else if (e.Column == scannerGrid.Columns["channelColumn"]) //{ // string c1 = e.CellValue1.ToString(), c2 = e.CellValue2.ToString(); // //Channel may have a + in it // if (c1.Contains("+")) // { // c1 = c1.Remove(c1.LastIndexOf(" + ")); // } // if (c2.Contains("+")) // { // c2 = c2.Remove(c2.LastIndexOf(" + ")); // } // if (Convert.ToInt32(c1) > Convert.ToInt32(c2)) { e.SortResult = 1; } // else if (Convert.ToInt32(c1) < Convert.ToInt32(c2)) { e.SortResult = -1; } // else { e.SortResult = 0; } // e.Handled = true; //} //Location sorting, they are doubles, not ints else if (e.Column == scannerGrid.Columns["latColumn"] || e.Column == scannerGrid.Columns["lonColumn"]) { if (Convert.ToDouble(e.CellValue1) > Convert.ToDouble(e.CellValue2)) { e.SortResult = 1; } else if (Convert.ToDouble(e.CellValue1) < Convert.ToDouble(e.CellValue2)) { e.SortResult = -1; } else { e.SortResult = 0; } e.Handled = true; } }
private void EquipmentView_SortCompare( object sender, DataGridViewSortCompareEventArgs e ) { if ( e.Column.Name == EquipmentView_Type.Name ) { e.SortResult = KCDatabase.Instance.MasterEquipments[(int)EquipmentView.Rows[e.RowIndex1].Cells[0].Value].EquipmentType[2] - KCDatabase.Instance.MasterEquipments[(int)EquipmentView.Rows[e.RowIndex2].Cells[0].Value].EquipmentType[2]; } else { e.SortResult = ( (IComparable)e.CellValue1 ).CompareTo( e.CellValue2 ); } if ( e.SortResult == 0 ) { e.SortResult = (int)( EquipmentView.Rows[e.RowIndex1].Tag ?? 0 ) - (int)( EquipmentView.Rows[e.RowIndex2].Tag ?? 0 ); } e.Handled = true; }
/// ------------------------------------------------------------------------------------ /// <summary> /// Occurs when the DataGridView compares two cell values to perform a sort operation. /// </summary> /// <param name="sender">The sender.</param> /// <param name="e">The <see cref="T:System.Windows.Forms.DataGridViewSortCompareEventArgs"/> /// instance containing the event data.</param> /// ------------------------------------------------------------------------------------ private void OnSortCompare(object sender, DataGridViewSortCompareEventArgs e) { if (e.CellValue1 is ITsString && e.CellValue2 is ITsString) { if (m_cache != null) { IWritingSystem ws = GetWritingSystem(e.RowIndex1); Debug.Assert(ws == GetWritingSystem(e.RowIndex2)); e.SortResult = ws.Collator.Compare(((ITsString)e.CellValue1).Text, ((ITsString)e.CellValue2).Text); e.Handled = true; return; } e.SortResult = ((ITsString)e.CellValue1).Text.CompareTo( ((ITsString)e.CellValue2).Text); e.Handled = true; return; } e.Handled = false; }
private void dgvArmor_SortCompare(object sender, DataGridViewSortCompareEventArgs e) { if (e.Column.Index != 1) return; else { try { int intResult; if (Convert.ToInt32(e.CellValue1) < Convert.ToInt32(e.CellValue2)) intResult = -1; else intResult = 1; e.SortResult = intResult; e.Handled = true; } catch { } return; } }