Skip to content

Commit 98f71b5

Browse files
committed
add setting for max size and fixed filter button image size, updated version
1 parent 54ae03b commit 98f71b5

File tree

5 files changed

+59
-8
lines changed

5 files changed

+59
-8
lines changed

AdvancedDataGridView/AdvancedDataGridView.cs

Lines changed: 41 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -179,7 +179,6 @@ public enum TranslationKey
179179

180180
#endregion
181181

182-
183182
#region class properties and fields
184183

185184
private List<string> _sortOrderList = new List<string>();
@@ -196,6 +195,10 @@ public enum TranslationKey
196195

197196
private FilterBuilerMode _filterBuilerMode = FilterBuilerMode.And;
198197

198+
internal int _maxFilterButtonImageHeight = ColumnHeaderCell.FilterButtonImageDefaultSize;
199+
200+
internal int _maxAllCellHeight = ColumnHeaderCell.FilterButtonImageDefaultSize;
201+
199202
#endregion
200203

201204

@@ -428,7 +431,7 @@ public void EnableFilterAndSort(DataGridViewColumn column)
428431
else
429432
{
430433
column.SortMode = DataGridViewColumnSortMode.Programmatic;
431-
cell = new ColumnHeaderCell(column.HeaderCell, true);
434+
cell = new ColumnHeaderCell(this, column.HeaderCell, true);
432435
cell.SortChanged += new ColumnHeaderCellEventHandler(Cell_SortChanged);
433436
cell.FilterChanged += new ColumnHeaderCellEventHandler(Cell_FilterChanged);
434437
cell.FilterPopup += new ColumnHeaderCellEventHandler(Cell_FilterPopup);
@@ -1253,6 +1256,41 @@ public void ShowMenuStrip(DataGridViewColumn column)
12531256
}
12541257
}
12551258

1259+
/// <summary>
1260+
/// Get or Set the max filter button image height
1261+
/// </summary>
1262+
public int MaxFilterButtonImageHeight
1263+
{
1264+
get
1265+
{
1266+
return _maxFilterButtonImageHeight;
1267+
}
1268+
set
1269+
{
1270+
_maxFilterButtonImageHeight = value > ColumnHeaderCell.FilterButtonImageDefaultSize ? value : ColumnHeaderCell.FilterButtonImageDefaultSize;
1271+
}
1272+
}
1273+
1274+
#endregion
1275+
1276+
1277+
#region internal Cell methods
1278+
1279+
/// <summary>
1280+
/// Get or Set the max filter button image height of all cells
1281+
/// </summary>
1282+
internal int MaxAllCellHeight
1283+
{
1284+
get
1285+
{
1286+
return _maxAllCellHeight;
1287+
}
1288+
set
1289+
{
1290+
_maxAllCellHeight = value > ColumnHeaderCell.FilterButtonImageDefaultSize ? value : ColumnHeaderCell.FilterButtonImageDefaultSize;
1291+
}
1292+
}
1293+
12561294
#endregion
12571295

12581296

@@ -1283,7 +1321,7 @@ private IEnumerable<ColumnHeaderCell> FilterableCells
12831321
protected override void OnColumnAdded(DataGridViewColumnEventArgs e)
12841322
{
12851323
e.Column.SortMode = DataGridViewColumnSortMode.Programmatic;
1286-
ColumnHeaderCell cell = new ColumnHeaderCell(e.Column.HeaderCell, FilterAndSortEnabled);
1324+
ColumnHeaderCell cell = new ColumnHeaderCell(this, e.Column.HeaderCell, FilterAndSortEnabled);
12871325
cell.SortChanged += new ColumnHeaderCellEventHandler(Cell_SortChanged);
12881326
cell.FilterChanged += new ColumnHeaderCellEventHandler(Cell_FilterChanged);
12891327
cell.FilterPopup += new ColumnHeaderCellEventHandler(Cell_FilterPopup);
0 Bytes
Binary file not shown.

AdvancedDataGridView/ColumnHeaderCell.cs

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -34,13 +34,20 @@ internal class ColumnHeaderCell : DataGridViewColumnHeaderCell
3434
/// </summary>
3535
private const bool FilterDateAndTimeDefaultEnabled = false;
3636

37+
/// <summary>
38+
/// Default filter button image width and height
39+
/// </summary>
40+
public const int FilterButtonImageDefaultSize = 23;
41+
3742
#endregion
3843

3944

4045
#region class properties and fields
4146

47+
private readonly AdvancedDataGridView dataGridView;
48+
4249
private Image _filterImage = Properties.Resources.ColumnHeader_UnFiltered;
43-
private Size _filterButtonImageSize = new Size(16, 16);
50+
private Size _filterButtonImageSize = new Size(FilterButtonImageDefaultSize, FilterButtonImageDefaultSize);
4451
private bool _filterButtonPressed = false;
4552
private bool _filterButtonOver = false;
4653
private Rectangle _filterButtonOffsetBounds = Rectangle.Empty;
@@ -61,11 +68,14 @@ internal class ColumnHeaderCell : DataGridViewColumnHeaderCell
6168
/// <summary>
6269
/// ColumnHeaderCell constructor
6370
/// </summary>
71+
/// <param name="dataGridView"></param>
6472
/// <param name="oldCell"></param>
6573
/// <param name="filterEnabled"></param>
66-
public ColumnHeaderCell(DataGridViewColumnHeaderCell oldCell, bool filterEnabled)
74+
public ColumnHeaderCell(AdvancedDataGridView dataGridView, DataGridViewColumnHeaderCell oldCell, bool filterEnabled)
6775
: base()
6876
{
77+
this.dataGridView = dataGridView;
78+
6979
Tag = oldCell.Tag;
7080
ErrorText = oldCell.ErrorText;
7181
ToolTipText = oldCell.ToolTipText;
@@ -75,7 +85,10 @@ public ColumnHeaderCell(DataGridViewColumnHeaderCell oldCell, bool filterEnabled
7585
Style = oldCell.Style;
7686
_filterEnabled = filterEnabled;
7787

78-
_filterButtonImageSize = new Size((int)Math.Round(oldCell.Size.Height * 0.8), (int)Math.Round(oldCell.Size.Height * 0.8));
88+
if (oldCell.Size.Height > dataGridView.MaxAllCellHeight)
89+
dataGridView.MaxAllCellHeight = oldCell.Size.Height;
90+
int filterButtonImageHeight = dataGridView.MaxFilterButtonImageHeight < dataGridView.MaxAllCellHeight ? dataGridView.MaxFilterButtonImageHeight : dataGridView.MaxAllCellHeight;
91+
_filterButtonImageSize = new Size((int)Math.Round(filterButtonImageHeight * 0.8), (int)Math.Round(filterButtonImageHeight * 0.8));
7992

8093
ColumnHeaderCell oldCellt = oldCell as ColumnHeaderCell;
8194
if (oldCellt != null && oldCellt.MenuStrip != null)
@@ -217,7 +230,7 @@ public void SortDESC()
217230
/// <returns></returns>
218231
public override object Clone()
219232
{
220-
return new ColumnHeaderCell(this, FilterAndSortEnabled);
233+
return new ColumnHeaderCell(dataGridView, this, FilterAndSortEnabled);
221234
}
222235

223236
/// <summary>
0 Bytes
Binary file not shown.

_DevTools/AutoBuilder.config.ps1

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ $solutionName = "AdvancedDataGridView"
66
$versionMajor = "1"
77
$versionMinor = "2"
88
$versionBuild = GetVersionBuild
9-
$versionRevision = "12"
9+
$versionRevision = "13"
1010
#build version number
1111
$version = GetVersion $versionMajor $versionMinor $versionBuild $versionRevision
1212

0 commit comments

Comments
 (0)