Mini Kabibi Habibi
using System;
using System.Windows.Forms;
using System.Collections;
using DevExpress.XtraGrid.Columns;
using DevExpress.Utils.Frames;
using DevExpress.XtraGrid.Views.Grid;
namespace DevExpress.XtraGrid.Demos {
public class DemosHelper {
public static void ShowDescriptionForm(System.Drawing.Point location, string description, string caption) {
DevExpress.XtraEditors.XtraForm frm = new DevExpress.XtraEditors.XtraForm();
TextBox tb = new TextBox();
tb.Multiline = true;
tb.Dock = DockStyle.Fill;
tb.ScrollBars = ScrollBars.Vertical;
tb.Text = description;
tb.SelectionLength = 0;
frm.Controls.Add(tb);
frm.FormBorderStyle = FormBorderStyle.FixedToolWindow;
frm.Text = caption;
frm.ShowInTaskbar = false;
frm.StartPosition = FormStartPosition.Manual;
frm.Location = DevExpress.Utils.ControlUtils.CalcLocation(location, location, frm.Size);
frm.ShowDialog();
}
}
public class MyGridView : GridView {
public static bool IsCondition(GridColumn column) {
if(column == null) return false;
foreach(StyleFormatCondition c in column.View.FormatConditions)
if(c.Column.Equals(column)) return true;
return false;
}
public void SetIcons() {
foreach(GridColumn column in this.Columns) {
column.ImageIndex = IsCondition(column) ? 0 : -1;
}
}
protected override void ApplyColumnFilter(DevExpress.XtraGrid.Columns.GridColumn column, FilterItem listBoxItem) {
if(listBoxItem == null) return;
if(listBoxItem.Text == Properties.Resources.ConditionsName) {
ConditionsEditor editor = new ConditionsEditor(column, column.View.GridControl.FindForm());
editor.ShowDialog();
SetIcons();
} else
base.ApplyColumnFilter(column, listBoxItem);
}
}
public class ItemCondition {
StyleFormatCondition fcondition;
public ItemCondition(StyleFormatCondition fcondition) {
this.fcondition = fcondition;
}
public override string ToString() {
if(fcondition.Condition != FormatConditionEnum.None)
if(fcondition.Condition == FormatConditionEnum.Between || fcondition.Condition == FormatConditionEnum.NotBetween) {
return string.Format("{0} {1}, {2}", fcondition.Condition, fcondition.Value1, fcondition.Value2);
} else
return string.Format("{0} {1}", fcondition.Condition, fcondition.Value1);
return string.Format(Properties.Resources.ConditionItemCaption, Index);
}
public int Index { get { return fcondition.Column.View.FormatConditions.IndexOf(fcondition); } }
public StyleFormatCondition Condition { get { return fcondition; }}
}
public class ItemExpressionCondition {
StyleFormatCondition fcondition;
public ItemExpressionCondition(StyleFormatCondition fcondition) {
this.fcondition = fcondition;
}
public bool IsExpressionCondition {
get {
return fcondition.Condition == FormatConditionEnum.Expression;
}
}
public override string ToString() {
if(fcondition.Expression == string.Empty)
return string.Format(Properties.Resources.EmptyConditionCaption, Index);
return fcondition.Expression;
}
public int Index { get { return fcondition.Collection.IndexOf(fcondition); } }
public StyleFormatCondition Condition { get { return fcondition; } }
}
}