From 53a9bc5fe012ba2b5f2321037b6e5fb19b649764 Mon Sep 17 00:00:00 2001
From: CreepyCrafter24 <33260128+CreepyCrafter24@users.noreply.github.com>
Date: Sun, 22 Dec 2019 16:58:16 +0100
Subject: [PATCH] Rider+Fix
---
Misc/ArrayFormatter.cs | 18 +-
Misc/DataGridViewNumericUpDownCell.cs | 453 +++++++-----------
Misc/DataGridViewNumericUpDownColumn.cs | 79 ++-
...DataGridViewNumericUpDownEditingControl.cs | 183 +++----
Misc/Forms.cs | 43 +-
Misc/GenericExtensions.cs | 16 +-
Misc/HID.cs | 37 +-
Misc/IO.cs | 15 +-
Misc/Security.cs | 5 +-
Misc/SelectBox.cs | 18 +-
W32.Test/Form1.cs | 77 +--
W32/Hooks/KeyboardHook.cs | 30 +-
W32/Hooks/KeyboardHookEventArgs.cs | 12 +-
W32/Hooks/MouseHook.cs | 30 +-
W32/Hooks/MouseHookEventArgs.cs | 7 +-
W32/KeyboardReader.cs | 4 +-
W32/Power.cs | 6 +-
W32/Privileges.cs | 15 +-
W32/Wnd32.cs | 79 +--
19 files changed, 447 insertions(+), 680 deletions(-)
diff --git a/Misc/ArrayFormatter.cs b/Misc/ArrayFormatter.cs
index 399b002..59ea186 100644
--- a/Misc/ArrayFormatter.cs
+++ b/Misc/ArrayFormatter.cs
@@ -2,18 +2,14 @@
{
public static class ArrayFormatter
{
- public static string ElementsToString(this object[] Input, string Seperator = "\r\n")
+ public static string ElementsToString(this object[] input, string separator = "\r\n")
{
- try
- {
- string a = "";
- for (int i = 0; i < Input.Length; i++)
- a += Input[i].ToString() + Seperator;
- if (Seperator.Length > 0)
- a = a.Remove(a.Length - Seperator.Length);
- return a;
- }
- catch { throw; }
+ string a = "";
+ for (int i = 0; i < input.Length; i++)
+ a += input[i] + separator;
+ if (separator.Length > 0)
+ a = a.Remove(a.Length - separator.Length);
+ return a;
}
}
}
\ No newline at end of file
diff --git a/Misc/DataGridViewNumericUpDownCell.cs b/Misc/DataGridViewNumericUpDownCell.cs
index c6e2f91..86242b4 100644
--- a/Misc/DataGridViewNumericUpDownCell.cs
+++ b/Misc/DataGridViewNumericUpDownCell.cs
@@ -6,23 +6,10 @@ using System.Globalization;
using System.Runtime.InteropServices;
using System.Windows.Forms;
-namespace GradeCalc
+namespace CC_Functions.Misc
{
public class DataGridViewNumericUpDownCell : DataGridViewTextBoxCell
{
- // Used in KeyEntersEditMode function
- [DllImport("USER32.DLL", CharSet = CharSet.Auto)]
- private static extern short VkKeyScan(char key);
-
- // Used in TranslateAlignment function
- private static readonly DataGridViewContentAlignment anyRight = DataGridViewContentAlignment.TopRight |
- DataGridViewContentAlignment.MiddleRight |
- DataGridViewContentAlignment.BottomRight;
-
- private static readonly DataGridViewContentAlignment anyCenter = DataGridViewContentAlignment.TopCenter |
- DataGridViewContentAlignment.MiddleCenter |
- DataGridViewContentAlignment.BottomCenter;
-
// Default dimensions of the static rendering bitmap used for the painting of the non-edited cells
private const int DATAGRIDVIEWNUMERICUPDOWNCELL_defaultRenderingBitmapWidth = 100;
@@ -35,7 +22,7 @@ namespace GradeCalc
internal const decimal DATAGRIDVIEWNUMERICUPDOWNCELL_defaultIncrement = decimal.One;
// Default value of the Maximum property
- internal const decimal DATAGRIDVIEWNUMERICUPDOWNCELL_defaultMaximum = (decimal)100.0;
+ internal const decimal DATAGRIDVIEWNUMERICUPDOWNCELL_defaultMaximum = (decimal) 100.0;
// Default value of the Minimum property
internal const decimal DATAGRIDVIEWNUMERICUPDOWNCELL_defaultMinimum = decimal.Zero;
@@ -43,36 +30,42 @@ namespace GradeCalc
// Default value of the ThousandsSeparator property
internal const bool DATAGRIDVIEWNUMERICUPDOWNCELL_defaultThousandsSeparator = false;
+ // Used in TranslateAlignment function
+ private static readonly DataGridViewContentAlignment anyRight = DataGridViewContentAlignment.TopRight |
+ DataGridViewContentAlignment.MiddleRight |
+ DataGridViewContentAlignment.BottomRight;
+
+ private static readonly DataGridViewContentAlignment anyCenter = DataGridViewContentAlignment.TopCenter |
+ DataGridViewContentAlignment.MiddleCenter |
+ DataGridViewContentAlignment.BottomCenter;
+
// Type of this cell's editing control
- private static Type defaultEditType = typeof(DataGridViewNumericUpDownEditingControl);
+ private static readonly Type defaultEditType = typeof(DataGridViewNumericUpDownEditingControl);
// Type of this cell's value. The formatted value type is string, the same as the base class DataGridViewTextBoxCell
- private static Type defaultValueType = typeof(decimal);
+ private static readonly Type defaultValueType = typeof(decimal);
// The bitmap used to paint the non-edited cells via a call to NumericUpDown.DrawToBitmap
- [ThreadStatic]
- private static Bitmap renderingBitmap;
+ [ThreadStatic] private static Bitmap renderingBitmap;
// The NumericUpDown control used to paint the non-edited cells via a call to NumericUpDown.DrawToBitmap
- [ThreadStatic]
- private static NumericUpDown paintingNumericUpDown;
+ [ThreadStatic] private static NumericUpDown paintingNumericUpDown;
- private int decimalPlaces; // Caches the value of the DecimalPlaces property
- private decimal increment; // Caches the value of the Increment property
- private decimal minimum; // Caches the value of the Minimum property
- private decimal maximum; // Caches the value of the Maximum property
+ private int decimalPlaces; // Caches the value of the DecimalPlaces property
+ private decimal increment; // Caches the value of the Increment property
+ private decimal maximum; // Caches the value of the Maximum property
+ private decimal minimum; // Caches the value of the Minimum property
private bool thousandsSeparator; // Caches the value of the ThousandsSeparator property
///
- /// Constructor for the DataGridViewNumericUpDownCell cell type
+ /// Constructor for the DataGridViewNumericUpDownCell cell type
///
public DataGridViewNumericUpDownCell()
{
// Create a thread specific bitmap used for the painting of the non-edited cells
if (renderingBitmap == null)
- {
- renderingBitmap = new Bitmap(DATAGRIDVIEWNUMERICUPDOWNCELL_defaultRenderingBitmapWidth, DATAGRIDVIEWNUMERICUPDOWNCELL_defaultRenderingBitmapHeight);
- }
+ renderingBitmap = new Bitmap(DATAGRIDVIEWNUMERICUPDOWNCELL_defaultRenderingBitmapWidth,
+ DATAGRIDVIEWNUMERICUPDOWNCELL_defaultRenderingBitmapHeight);
// Create a thread specific NumericUpDown control used for the painting of the non-edited cells
if (paintingNumericUpDown == null)
@@ -93,79 +86,64 @@ namespace GradeCalc
}
///
- /// The DecimalPlaces property replicates the one from the NumericUpDown control
+ /// The DecimalPlaces property replicates the one from the NumericUpDown control
///
[
DefaultValue(DATAGRIDVIEWNUMERICUPDOWNCELL_defaultDecimalPlaces)
]
public int DecimalPlaces
{
- get {
- return decimalPlaces;
- }
+ get => decimalPlaces;
- set {
+ set
+ {
if (value < 0 || value > 99)
- {
- throw new ArgumentOutOfRangeException("The DecimalPlaces property cannot be smaller than 0 or larger than 99.");
- }
+ throw new ArgumentOutOfRangeException(
+ "The DecimalPlaces property cannot be smaller than 0 or larger than 99.");
if (decimalPlaces != value)
{
SetDecimalPlaces(RowIndex, value);
- OnCommonChange(); // Assure that the cell or column gets repainted and autosized if needed
+ OnCommonChange(); // Assure that the cell or column gets repainted and autosized if needed
}
}
}
///
- /// Returns the current DataGridView EditingControl as a DataGridViewNumericUpDownEditingControl control
+ /// Returns the current DataGridView EditingControl as a DataGridViewNumericUpDownEditingControl control
///
- private DataGridViewNumericUpDownEditingControl EditingNumericUpDown
- {
- get {
- return DataGridView.EditingControl as DataGridViewNumericUpDownEditingControl;
- }
- }
+ private DataGridViewNumericUpDownEditingControl EditingNumericUpDown =>
+ DataGridView.EditingControl as DataGridViewNumericUpDownEditingControl;
///
- /// Define the type of the cell's editing control
+ /// Define the type of the cell's editing control
///
- public override Type EditType
- {
- get {
- return defaultEditType; // the type is DataGridViewNumericUpDownEditingControl
- }
- }
+ public override Type EditType => defaultEditType; // the type is DataGridViewNumericUpDownEditingControl
///
- /// The Increment property replicates the one from the NumericUpDown control
+ /// The Increment property replicates the one from the NumericUpDown control
///
public decimal Increment
{
- get {
- return increment;
- }
+ get => increment;
- set {
- if (value < (decimal)0.0)
- {
+ set
+ {
+ if (value < (decimal) 0.0)
throw new ArgumentOutOfRangeException("The Increment property cannot be smaller than 0.");
- }
SetIncrement(RowIndex, value);
// No call to OnCommonChange is needed since the increment value does not affect the rendering of the cell.
}
}
///
- /// The Maximum property replicates the one from the NumericUpDown control
+ /// The Maximum property replicates the one from the NumericUpDown control
///
public decimal Maximum
{
- get {
- return maximum;
- }
+ get => maximum;
- set {
+ set
+ {
if (maximum != value)
{
SetMaximum(RowIndex, value);
@@ -175,15 +153,14 @@ namespace GradeCalc
}
///
- /// The Minimum property replicates the one from the NumericUpDown control
+ /// The Minimum property replicates the one from the NumericUpDown control
///
public decimal Minimum
{
- get {
- return minimum;
- }
+ get => minimum;
- set {
+ set
+ {
if (minimum != value)
{
SetMinimum(RowIndex, value);
@@ -193,18 +170,17 @@ namespace GradeCalc
}
///
- /// The ThousandsSeparator property replicates the one from the NumericUpDown control
+ /// The ThousandsSeparator property replicates the one from the NumericUpDown control
///
[
DefaultValue(DATAGRIDVIEWNUMERICUPDOWNCELL_defaultThousandsSeparator)
]
public bool ThousandsSeparator
{
- get {
- return thousandsSeparator;
- }
+ get => thousandsSeparator;
- set {
+ set
+ {
if (thousandsSeparator != value)
{
SetThousandsSeparator(RowIndex, value);
@@ -214,22 +190,24 @@ namespace GradeCalc
}
///
- /// Returns the type of the cell's Value property
+ /// Returns the type of the cell's Value property
///
public override Type ValueType
{
- get {
+ get
+ {
Type valueType = base.ValueType;
- if (valueType != null)
- {
- return valueType;
- }
+ if (valueType != null) return valueType;
return defaultValueType;
}
}
+ // Used in KeyEntersEditMode function
+ [DllImport("USER32.DLL", CharSet = CharSet.Auto)]
+ private static extern short VkKeyScan(char key);
+
///
- /// Clones a DataGridViewNumericUpDownCell cell, copies all the custom properties.
+ /// Clones a DataGridViewNumericUpDownCell cell, copies all the custom properties.
///
public override object Clone()
{
@@ -242,28 +220,23 @@ namespace GradeCalc
dataGridViewCell.Minimum = Minimum;
dataGridViewCell.ThousandsSeparator = ThousandsSeparator;
}
+
return dataGridViewCell;
}
///
- /// Returns the provided value constrained to be within the min and max.
+ /// Returns the provided value constrained to be within the min and max.
///
private decimal Constrain(decimal value)
{
Debug.Assert(minimum <= maximum);
- if (value < minimum)
- {
- value = minimum;
- }
- if (value > maximum)
- {
- value = maximum;
- }
+ if (value < minimum) value = minimum;
+ if (value > maximum) value = maximum;
return value;
}
///
- /// DetachEditingControl gets called by the DataGridView control when the editing session is ending
+ /// DetachEditingControl gets called by the DataGridView control when the editing session is ending
///
[
EditorBrowsable(EditorBrowsableState.Advanced)
@@ -272,9 +245,7 @@ namespace GradeCalc
{
DataGridView dataGridView = DataGridView;
if (dataGridView == null || dataGridView.EditingControl == null)
- {
throw new InvalidOperationException("Cell is detached or its grid has no editing control.");
- }
NumericUpDown numericUpDown = dataGridView.EditingControl as NumericUpDown;
if (numericUpDown != null)
@@ -285,19 +256,17 @@ namespace GradeCalc
// Here the undo buffer of the TextBox inside the NumericUpDown control gets cleared to avoid
// interferences between the editing sessions.
TextBox textBox = numericUpDown.Controls[1] as TextBox;
- if (textBox != null)
- {
- textBox.ClearUndo();
- }
+ if (textBox != null) textBox.ClearUndo();
}
base.DetachEditingControl();
}
///
- /// Adjusts the location and size of the editing control given the alignment characteristics of the cell
+ /// Adjusts the location and size of the editing control given the alignment characteristics of the cell
///
- private Rectangle GetAdjustedEditingControlBounds(Rectangle editingControlBounds, DataGridViewCellStyle cellStyle)
+ private Rectangle GetAdjustedEditingControlBounds(Rectangle editingControlBounds,
+ DataGridViewCellStyle cellStyle)
{
// Add a 1 pixel padding on the left and right of the editing control
editingControlBounds.X += 1;
@@ -306,7 +275,6 @@ namespace GradeCalc
// Adjust the vertical location of the editing control:
int preferredHeight = cellStyle.Font.Height + 3;
if (preferredHeight < editingControlBounds.Height)
- {
switch (cellStyle.Alignment)
{
case DataGridViewContentAlignment.MiddleLeft:
@@ -321,87 +289,83 @@ namespace GradeCalc
editingControlBounds.Y += editingControlBounds.Height - preferredHeight;
break;
}
- }
return editingControlBounds;
}
///
- /// Customized implementation of the GetErrorIconBounds function in order to draw the potential
- /// error icon next to the up/down buttons and not on top of them.
+ /// Customized implementation of the GetErrorIconBounds function in order to draw the potential
+ /// error icon next to the up/down buttons and not on top of them.
///
- protected override Rectangle GetErrorIconBounds(Graphics graphics, DataGridViewCellStyle cellStyle, int rowIndex)
+ protected override Rectangle GetErrorIconBounds(Graphics graphics, DataGridViewCellStyle cellStyle,
+ int rowIndex)
{
const int ButtonsWidth = 16;
Rectangle errorIconBounds = base.GetErrorIconBounds(graphics, cellStyle, rowIndex);
if (DataGridView.RightToLeft == RightToLeft.Yes)
- {
errorIconBounds.X = errorIconBounds.Left + ButtonsWidth;
- }
else
- {
errorIconBounds.X = errorIconBounds.Left - ButtonsWidth;
- }
return errorIconBounds;
}
///
- /// Customized implementation of the GetFormattedValue function in order to include the decimal and thousand separator
- /// characters in the formatted representation of the cell value.
+ /// Customized implementation of the GetFormattedValue function in order to include the decimal and thousand separator
+ /// characters in the formatted representation of the cell value.
///
protected override object GetFormattedValue(object value,
- int rowIndex,
- ref DataGridViewCellStyle cellStyle,
- TypeConverter valueTypeConverter,
- TypeConverter formattedValueTypeConverter,
- DataGridViewDataErrorContexts context)
+ int rowIndex,
+ ref DataGridViewCellStyle cellStyle,
+ TypeConverter valueTypeConverter,
+ TypeConverter formattedValueTypeConverter,
+ DataGridViewDataErrorContexts context)
{
// By default, the base implementation converts the Decimal 1234.5 into the string "1234.5"
- object formattedValue = base.GetFormattedValue(value, rowIndex, ref cellStyle, valueTypeConverter, formattedValueTypeConverter, context);
+ object formattedValue = base.GetFormattedValue(value, rowIndex, ref cellStyle, valueTypeConverter,
+ formattedValueTypeConverter, context);
string formattedNumber = formattedValue as string;
if (!string.IsNullOrEmpty(formattedNumber) && value != null)
{
decimal unformattedDecimal = Convert.ToDecimal(value);
decimal formattedDecimal = Convert.ToDecimal(formattedNumber);
if (unformattedDecimal == formattedDecimal)
- {
// The base implementation of GetFormattedValue (which triggers the CellFormatting event) did nothing else than
// the typical 1234.5 to "1234.5" conversion. But depending on the values of ThousandsSeparator and DecimalPlaces,
// this may not be the actual string displayed. The real formatted value may be "1,234.500"
- return formattedDecimal.ToString((ThousandsSeparator ? "N" : "F") + DecimalPlaces.ToString());
- }
+ return formattedDecimal.ToString((ThousandsSeparator ? "N" : "F") + DecimalPlaces);
}
+
return formattedValue;
}
///
- /// Custom implementation of the GetPreferredSize function. This implementation uses the preferred size of the base
- /// DataGridViewTextBoxCell cell and adds room for the up/down buttons.
+ /// Custom implementation of the GetPreferredSize function. This implementation uses the preferred size of the base
+ /// DataGridViewTextBoxCell cell and adds room for the up/down buttons.
///
- protected override Size GetPreferredSize(Graphics graphics, DataGridViewCellStyle cellStyle, int rowIndex, Size constraintSize)
+ protected override Size GetPreferredSize(Graphics graphics, DataGridViewCellStyle cellStyle, int rowIndex,
+ Size constraintSize)
{
- if (DataGridView == null)
- {
- return new Size(-1, -1);
- }
+ if (DataGridView == null) return new Size(-1, -1);
Size preferredSize = base.GetPreferredSize(graphics, cellStyle, rowIndex, constraintSize);
if (constraintSize.Width == 0)
{
const int ButtonsWidth = 16; // Account for the width of the up/down buttons.
- const int ButtonMargin = 8; // Account for some blank pixels between the text and buttons.
+ const int ButtonMargin = 8; // Account for some blank pixels between the text and buttons.
preferredSize.Width += ButtonsWidth + ButtonMargin;
}
+
return preferredSize;
}
///
- /// Custom implementation of the InitializeEditingControl function. This function is called by the DataGridView control
- /// at the beginning of an editing session. It makes sure that the properties of the NumericUpDown editing control are
- /// set according to the cell properties.
+ /// Custom implementation of the InitializeEditingControl function. This function is called by the DataGridView control
+ /// at the beginning of an editing session. It makes sure that the properties of the NumericUpDown editing control are
+ /// set according to the cell properties.
///
- public override void InitializeEditingControl(int rowIndex, object initialFormattedValue, DataGridViewCellStyle dataGridViewCellStyle)
+ public override void InitializeEditingControl(int rowIndex, object initialFormattedValue,
+ DataGridViewCellStyle dataGridViewCellStyle)
{
base.InitializeEditingControl(rowIndex, initialFormattedValue, dataGridViewCellStyle);
NumericUpDown numericUpDown = DataGridView.EditingControl as NumericUpDown;
@@ -415,20 +379,16 @@ namespace GradeCalc
numericUpDown.ThousandsSeparator = ThousandsSeparator;
string initialFormattedValueStr = initialFormattedValue as string;
if (initialFormattedValueStr == null)
- {
numericUpDown.Text = string.Empty;
- }
else
- {
numericUpDown.Text = initialFormattedValueStr;
- }
}
}
///
- /// Custom implementation of the KeyEntersEditMode function. This function is called by the DataGridView control
- /// to decide whether a keystroke must start an editing session or not. In this case, a new session is started when
- /// a digit or negative sign key is hit.
+ /// Custom implementation of the KeyEntersEditMode function. This function is called by the DataGridView control
+ /// to decide whether a keystroke must start an editing session or not. In this case, a new session is started when
+ /// a digit or negative sign key is hit.
///
public override bool KeyEntersEditMode(KeyEventArgs e)
{
@@ -436,83 +396,74 @@ namespace GradeCalc
Keys negativeSignKey = Keys.None;
string negativeSignStr = numberFormatInfo.NegativeSign;
if (!string.IsNullOrEmpty(negativeSignStr) && negativeSignStr.Length == 1)
- {
- negativeSignKey = (Keys)VkKeyScan(negativeSignStr[0]);
- }
+ negativeSignKey = (Keys) VkKeyScan(negativeSignStr[0]);
- if ((char.IsDigit((char)e.KeyCode) ||
- e.KeyCode >= Keys.NumPad0 && e.KeyCode <= Keys.NumPad9 ||
+ if ((char.IsDigit((char) e.KeyCode) ||
+ (e.KeyCode >= Keys.NumPad0 && e.KeyCode <= Keys.NumPad9) ||
negativeSignKey == e.KeyCode ||
Keys.Subtract == e.KeyCode) &&
!e.Shift && !e.Alt && !e.Control)
- {
return true;
- }
return false;
}
///
- /// Called when a cell characteristic that affects its rendering and/or preferred size has changed.
- /// This implementation only takes care of repainting the cells. The DataGridView's autosizing methods
- /// also need to be called in cases where some grid elements autosize.
+ /// Called when a cell characteristic that affects its rendering and/or preferred size has changed.
+ /// This implementation only takes care of repainting the cells. The DataGridView's autosizing methods
+ /// also need to be called in cases where some grid elements autosize.
///
private void OnCommonChange()
{
if (DataGridView != null && !DataGridView.IsDisposed && !DataGridView.Disposing)
{
if (RowIndex == -1)
- {
// Invalidate and autosize column
DataGridView.InvalidateColumn(ColumnIndex);
- // TODO: Add code to autosize the cell's column, the rows, the column headers
- // and the row headers depending on their autosize settings.
- // The DataGridView control does not expose a public method that takes care of this.
- }
+ // TODO: Add code to autosize the cell's column, the rows, the column headers
+ // and the row headers depending on their autosize settings.
+ // The DataGridView control does not expose a public method that takes care of this.
else
- {
// The DataGridView control exposes a public method called UpdateCellValue
// that invalidates the cell so that it gets repainted and also triggers all
// the necessary autosizing: the cell's column and/or row, the column headers
// and the row headers are autosized depending on their autosize settings.
DataGridView.UpdateCellValue(ColumnIndex, RowIndex);
- }
}
}
///
- /// Determines whether this cell, at the given row index, shows the grid's editing control or not.
- /// The row index needs to be provided as a parameter because this cell may be shared among multiple rows.
+ /// Determines whether this cell, at the given row index, shows the grid's editing control or not.
+ /// The row index needs to be provided as a parameter because this cell may be shared among multiple rows.
///
private bool OwnsEditingNumericUpDown(int rowIndex)
{
- if (rowIndex == -1 || DataGridView == null)
- {
- return false;
- }
- DataGridViewNumericUpDownEditingControl numericUpDownEditingControl = DataGridView.EditingControl as DataGridViewNumericUpDownEditingControl;
- return numericUpDownEditingControl != null && rowIndex == ((IDataGridViewEditingControl)numericUpDownEditingControl).EditingControlRowIndex;
+ if (rowIndex == -1 || DataGridView == null) return false;
+ DataGridViewNumericUpDownEditingControl numericUpDownEditingControl =
+ DataGridView.EditingControl as DataGridViewNumericUpDownEditingControl;
+ return numericUpDownEditingControl != null && rowIndex ==
+ ((IDataGridViewEditingControl) numericUpDownEditingControl).EditingControlRowIndex;
}
///
- /// Custom paints the cell. The base implementation of the DataGridViewTextBoxCell type is called first,
- /// dropping the icon error and content foreground parts. Those two parts are painted by this custom implementation.
- /// In this sample, the non-edited NumericUpDown control is painted by using a call to Control.DrawToBitmap. This is
- /// an easy solution for painting controls but it's not necessarily the most performant. An alternative would be to paint
- /// the NumericUpDown control piece by piece (text and up/down buttons).
+ /// Custom paints the cell. The base implementation of the DataGridViewTextBoxCell type is called first,
+ /// dropping the icon error and content foreground parts. Those two parts are painted by this custom implementation.
+ /// In this sample, the non-edited NumericUpDown control is painted by using a call to Control.DrawToBitmap. This is
+ /// an easy solution for painting controls but it's not necessarily the most performant. An alternative would be to
+ /// paint
+ /// the NumericUpDown control piece by piece (text and up/down buttons).
///
- protected override void Paint(Graphics graphics, Rectangle clipBounds, Rectangle cellBounds, int rowIndex, DataGridViewElementStates cellState,
- object value, object formattedValue, string errorText, DataGridViewCellStyle cellStyle,
- DataGridViewAdvancedBorderStyle advancedBorderStyle, DataGridViewPaintParts paintParts)
+ protected override void Paint(Graphics graphics, Rectangle clipBounds, Rectangle cellBounds, int rowIndex,
+ DataGridViewElementStates cellState,
+ object value, object formattedValue, string errorText, DataGridViewCellStyle cellStyle,
+ DataGridViewAdvancedBorderStyle advancedBorderStyle, DataGridViewPaintParts paintParts)
{
- if (DataGridView == null)
- {
- return;
- }
+ if (DataGridView == null) return;
// First paint the borders and background of the cell.
- base.Paint(graphics, clipBounds, cellBounds, rowIndex, cellState, value, formattedValue, errorText, cellStyle, advancedBorderStyle,
- paintParts & ~(DataGridViewPaintParts.ErrorIcon | DataGridViewPaintParts.ContentForeground));
+ base.Paint(graphics, clipBounds, cellBounds, rowIndex, cellState, value, formattedValue, errorText,
+ cellStyle, advancedBorderStyle,
+ paintParts & ~(DataGridViewPaintParts.ErrorIcon | DataGridViewPaintParts.ContentForeground));
Point ptCurrentCell = DataGridView.CurrentCellAddress;
bool cellCurrent = ptCurrentCell.X == ColumnIndex && ptCurrentCell.Y == rowIndex;
@@ -534,16 +485,13 @@ namespace GradeCalc
if (cellStyle.Padding != Padding.Empty)
{
if (DataGridView.RightToLeft == RightToLeft.Yes)
- {
valBounds.Offset(cellStyle.Padding.Right, cellStyle.Padding.Top);
- }
else
- {
valBounds.Offset(cellStyle.Padding.Left, cellStyle.Padding.Top);
- }
valBounds.Width -= cellStyle.Padding.Horizontal;
valBounds.Height -= cellStyle.Padding.Vertical;
}
+
// Determine the NumericUpDown control location
valBounds = GetAdjustedEditingControlBounds(valBounds, cellStyle);
@@ -556,11 +504,10 @@ namespace GradeCalc
renderingBitmap.Dispose();
renderingBitmap = new Bitmap(valBounds.Width, valBounds.Height);
}
+
// Make sure the NumericUpDown control is parented to a visible control
if (paintingNumericUpDown.Parent == null || !paintingNumericUpDown.Parent.Visible)
- {
paintingNumericUpDown.Parent = DataGridView;
- }
// Set all the relevant properties
paintingNumericUpDown.TextAlign = TranslateAlignment(cellStyle.Alignment);
paintingNumericUpDown.DecimalPlaces = DecimalPlaces;
@@ -574,89 +521,78 @@ namespace GradeCalc
Color backColor;
if (PartPainted(paintParts, DataGridViewPaintParts.SelectionBackground) && cellSelected)
- {
backColor = cellStyle.SelectionBackColor;
- }
else
- {
backColor = cellStyle.BackColor;
- }
if (PartPainted(paintParts, DataGridViewPaintParts.Background))
{
if (backColor.A < 255)
- {
// The NumericUpDown control does not support transparent back colors
backColor = Color.FromArgb(255, backColor);
- }
paintingNumericUpDown.BackColor = backColor;
}
+
// Finally paint the NumericUpDown control
Rectangle srcRect = new Rectangle(0, 0, valBounds.Width, valBounds.Height);
if (srcRect.Width > 0 && srcRect.Height > 0)
{
paintingNumericUpDown.DrawToBitmap(renderingBitmap, srcRect);
graphics.DrawImage(renderingBitmap, new Rectangle(valBounds.Location, valBounds.Size),
- srcRect, GraphicsUnit.Pixel);
+ srcRect, GraphicsUnit.Pixel);
}
}
+
if (PartPainted(paintParts, DataGridViewPaintParts.ErrorIcon))
- {
// Paint the potential error icon on top of the NumericUpDown control
base.Paint(graphics, clipBounds, cellBounds, rowIndex, cellState, value, formattedValue, errorText,
- cellStyle, advancedBorderStyle, DataGridViewPaintParts.ErrorIcon);
- }
+ cellStyle, advancedBorderStyle, DataGridViewPaintParts.ErrorIcon);
}
}
///
- /// Little utility function called by the Paint function to see if a particular part needs to be painted.
+ /// Little utility function called by the Paint function to see if a particular part needs to be painted.
///
- private static bool PartPainted(DataGridViewPaintParts paintParts, DataGridViewPaintParts paintPart)
- {
- return (paintParts & paintPart) != 0;
- }
+ private static bool PartPainted(DataGridViewPaintParts paintParts, DataGridViewPaintParts paintPart) =>
+ (paintParts & paintPart) != 0;
///
- /// Custom implementation of the PositionEditingControl method called by the DataGridView control when it
- /// needs to relocate and/or resize the editing control.
+ /// Custom implementation of the PositionEditingControl method called by the DataGridView control when it
+ /// needs to relocate and/or resize the editing control.
///
public override void PositionEditingControl(bool setLocation,
- bool setSize,
- Rectangle cellBounds,
- Rectangle cellClip,
- DataGridViewCellStyle cellStyle,
- bool singleVerticalBorderAdded,
- bool singleHorizontalBorderAdded,
- bool isFirstDisplayedColumn,
- bool isFirstDisplayedRow)
+ bool setSize,
+ Rectangle cellBounds,
+ Rectangle cellClip,
+ DataGridViewCellStyle cellStyle,
+ bool singleVerticalBorderAdded,
+ bool singleHorizontalBorderAdded,
+ bool isFirstDisplayedColumn,
+ bool isFirstDisplayedRow)
{
Rectangle editingControlBounds = PositionEditingPanel(cellBounds,
- cellClip,
- cellStyle,
- singleVerticalBorderAdded,
- singleHorizontalBorderAdded,
- isFirstDisplayedColumn,
- isFirstDisplayedRow);
+ cellClip,
+ cellStyle,
+ singleVerticalBorderAdded,
+ singleHorizontalBorderAdded,
+ isFirstDisplayedColumn,
+ isFirstDisplayedRow);
editingControlBounds = GetAdjustedEditingControlBounds(editingControlBounds, cellStyle);
DataGridView.EditingControl.Location = new Point(editingControlBounds.X, editingControlBounds.Y);
DataGridView.EditingControl.Size = new Size(editingControlBounds.Width, editingControlBounds.Height);
}
///
- /// Utility function that sets a new value for the DecimalPlaces property of the cell. This function is used by
- /// the cell and column DecimalPlaces property. The column uses this method instead of the DecimalPlaces
- /// property for performance reasons. This way the column can invalidate the entire column at once instead of
- /// invalidating each cell of the column individually. A row index needs to be provided as a parameter because
- /// this cell may be shared among multiple rows.
+ /// Utility function that sets a new value for the DecimalPlaces property of the cell. This function is used by
+ /// the cell and column DecimalPlaces property. The column uses this method instead of the DecimalPlaces
+ /// property for performance reasons. This way the column can invalidate the entire column at once instead of
+ /// invalidating each cell of the column individually. A row index needs to be provided as a parameter because
+ /// this cell may be shared among multiple rows.
///
internal void SetDecimalPlaces(int rowIndex, int value)
{
Debug.Assert(value >= 0 && value <= 99);
decimalPlaces = value;
- if (OwnsEditingNumericUpDown(rowIndex))
- {
- EditingNumericUpDown.DecimalPlaces = value;
- }
+ if (OwnsEditingNumericUpDown(rowIndex)) EditingNumericUpDown.DecimalPlaces = value;
}
/// Utility function that sets a new value for the Increment property of the cell. This function is used by
@@ -664,12 +600,9 @@ namespace GradeCalc
/// this cell may be shared among multiple rows.
internal void SetIncrement(int rowIndex, decimal value)
{
- Debug.Assert(value >= (decimal)0.0);
+ Debug.Assert(value >= (decimal) 0.0);
increment = value;
- if (OwnsEditingNumericUpDown(rowIndex))
- {
- EditingNumericUpDown.Increment = value;
- }
+ if (OwnsEditingNumericUpDown(rowIndex)) EditingNumericUpDown.Increment = value;
}
/// Utility function that sets a new value for the Maximum property of the cell. This function is used by
@@ -680,25 +613,17 @@ namespace GradeCalc
internal void SetMaximum(int rowIndex, decimal value)
{
maximum = value;
- if (minimum > maximum)
- {
- minimum = maximum;
- }
+ if (minimum > maximum) minimum = maximum;
object cellValue = GetValue(rowIndex);
if (cellValue != null)
{
decimal currentValue = Convert.ToDecimal(cellValue);
decimal constrainedValue = Constrain(currentValue);
- if (constrainedValue != currentValue)
- {
- SetValue(rowIndex, constrainedValue);
- }
+ if (constrainedValue != currentValue) SetValue(rowIndex, constrainedValue);
}
+
Debug.Assert(maximum == value);
- if (OwnsEditingNumericUpDown(rowIndex))
- {
- EditingNumericUpDown.Maximum = value;
- }
+ if (OwnsEditingNumericUpDown(rowIndex)) EditingNumericUpDown.Maximum = value;
}
/// Utility function that sets a new value for the Minimum property of the cell. This function is used by
@@ -709,25 +634,17 @@ namespace GradeCalc
internal void SetMinimum(int rowIndex, decimal value)
{
minimum = value;
- if (minimum > maximum)
- {
- maximum = value;
- }
+ if (minimum > maximum) maximum = value;
object cellValue = GetValue(rowIndex);
if (cellValue != null)
{
decimal currentValue = Convert.ToDecimal(cellValue);
decimal constrainedValue = Constrain(currentValue);
- if (constrainedValue != currentValue)
- {
- SetValue(rowIndex, constrainedValue);
- }
+ if (constrainedValue != currentValue) SetValue(rowIndex, constrainedValue);
}
+
Debug.Assert(minimum == value);
- if (OwnsEditingNumericUpDown(rowIndex))
- {
- EditingNumericUpDown.Minimum = value;
- }
+ if (OwnsEditingNumericUpDown(rowIndex)) EditingNumericUpDown.Minimum = value;
}
/// Utility function that sets a new value for the ThousandsSeparator property of the cell. This function is used by
@@ -738,38 +655,28 @@ namespace GradeCalc
internal void SetThousandsSeparator(int rowIndex, bool value)
{
thousandsSeparator = value;
- if (OwnsEditingNumericUpDown(rowIndex))
- {
- EditingNumericUpDown.ThousandsSeparator = value;
- }
+ if (OwnsEditingNumericUpDown(rowIndex)) EditingNumericUpDown.ThousandsSeparator = value;
}
///
- /// Returns a standard textual representation of the cell.
+ /// Returns a standard textual representation of the cell.
///
- public override string ToString()
- {
- return "DataGridViewNumericUpDownCell { ColumnIndex=" + ColumnIndex.ToString(CultureInfo.CurrentCulture) + ", RowIndex=" + RowIndex.ToString(CultureInfo.CurrentCulture) + " }";
- }
+ public override string ToString() =>
+ "DataGridViewNumericUpDownCell { ColumnIndex=" + ColumnIndex.ToString(CultureInfo.CurrentCulture) +
+ ", RowIndex=" + RowIndex.ToString(CultureInfo.CurrentCulture) + " }";
///
- /// Little utility function used by both the cell and column types to translate a DataGridViewContentAlignment value into
- /// a HorizontalAlignment value.
+ /// Little utility function used by both the cell and column types to translate a DataGridViewContentAlignment value
+ /// into
+ /// a HorizontalAlignment value.
///
internal static HorizontalAlignment TranslateAlignment(DataGridViewContentAlignment align)
{
if ((align & anyRight) != 0)
- {
return HorizontalAlignment.Right;
- }
- else if ((align & anyCenter) != 0)
- {
+ if ((align & anyCenter) != 0)
return HorizontalAlignment.Center;
- }
- else
- {
- return HorizontalAlignment.Left;
- }
+ return HorizontalAlignment.Left;
}
}
}
\ No newline at end of file
diff --git a/Misc/DataGridViewNumericUpDownColumn.cs b/Misc/DataGridViewNumericUpDownColumn.cs
index ec337b1..123ec63 100644
--- a/Misc/DataGridViewNumericUpDownColumn.cs
+++ b/Misc/DataGridViewNumericUpDownColumn.cs
@@ -4,7 +4,7 @@ using System.Globalization;
using System.Text;
using System.Windows.Forms;
-namespace GradeCalc
+namespace CC_Functions.Misc
{
///
/// Custom column type dedicated to the DataGridViewNumericUpDownCell cell type.
@@ -28,7 +28,7 @@ namespace GradeCalc
get => base.CellTemplate;
set
{
- var dataGridViewNumericUpDownCell = value as DataGridViewNumericUpDownCell;
+ DataGridViewNumericUpDownCell dataGridViewNumericUpDownCell = value as DataGridViewNumericUpDownCell;
if (value != null && dataGridViewNumericUpDownCell == null)
throw new InvalidCastException(
"Value provided for CellTemplate must be of type DataGridViewNumericUpDownElements.DataGridViewNumericUpDownCell or derive from it.");
@@ -61,14 +61,15 @@ namespace GradeCalc
if (DataGridView != null)
{
// Update all the existing DataGridViewNumericUpDownCell cells in the column accordingly.
- var dataGridViewRows = DataGridView.Rows;
- var rowCount = dataGridViewRows.Count;
- for (var rowIndex = 0; rowIndex < rowCount; rowIndex++)
+ DataGridViewRowCollection dataGridViewRows = DataGridView.Rows;
+ int rowCount = dataGridViewRows.Count;
+ for (int rowIndex = 0; rowIndex < rowCount; rowIndex++)
{
// Be careful not to unshare rows unnecessarily.
// This could have severe performance repercussions.
- var dataGridViewRow = dataGridViewRows.SharedRow(rowIndex);
- var dataGridViewCell = dataGridViewRow.Cells[Index] as DataGridViewNumericUpDownCell;
+ DataGridViewRow dataGridViewRow = dataGridViewRows.SharedRow(rowIndex);
+ DataGridViewNumericUpDownCell dataGridViewCell =
+ dataGridViewRow.Cells[Index] as DataGridViewNumericUpDownCell;
if (dataGridViewCell != null)
// Call the internal SetDecimalPlaces method instead of the property to avoid invalidation
// of each cell. The whole column is invalidated later in a single operation for better performance.
@@ -103,12 +104,13 @@ namespace GradeCalc
NumericUpDownCellTemplate.Increment = value;
if (DataGridView != null)
{
- var dataGridViewRows = DataGridView.Rows;
- var rowCount = dataGridViewRows.Count;
- for (var rowIndex = 0; rowIndex < rowCount; rowIndex++)
+ DataGridViewRowCollection dataGridViewRows = DataGridView.Rows;
+ int rowCount = dataGridViewRows.Count;
+ for (int rowIndex = 0; rowIndex < rowCount; rowIndex++)
{
- var dataGridViewRow = dataGridViewRows.SharedRow(rowIndex);
- var dataGridViewCell = dataGridViewRow.Cells[Index] as DataGridViewNumericUpDownCell;
+ DataGridViewRow dataGridViewRow = dataGridViewRows.SharedRow(rowIndex);
+ DataGridViewNumericUpDownCell dataGridViewCell =
+ dataGridViewRow.Cells[Index] as DataGridViewNumericUpDownCell;
if (dataGridViewCell != null) dataGridViewCell.SetIncrement(rowIndex, value);
}
}
@@ -138,12 +140,13 @@ namespace GradeCalc
NumericUpDownCellTemplate.Maximum = value;
if (DataGridView != null)
{
- var dataGridViewRows = DataGridView.Rows;
- var rowCount = dataGridViewRows.Count;
- for (var rowIndex = 0; rowIndex < rowCount; rowIndex++)
+ DataGridViewRowCollection dataGridViewRows = DataGridView.Rows;
+ int rowCount = dataGridViewRows.Count;
+ for (int rowIndex = 0; rowIndex < rowCount; rowIndex++)
{
- var dataGridViewRow = dataGridViewRows.SharedRow(rowIndex);
- var dataGridViewCell = dataGridViewRow.Cells[Index] as DataGridViewNumericUpDownCell;
+ DataGridViewRow dataGridViewRow = dataGridViewRows.SharedRow(rowIndex);
+ DataGridViewNumericUpDownCell dataGridViewCell =
+ dataGridViewRow.Cells[Index] as DataGridViewNumericUpDownCell;
if (dataGridViewCell != null) dataGridViewCell.SetMaximum(rowIndex, value);
}
@@ -178,12 +181,13 @@ namespace GradeCalc
NumericUpDownCellTemplate.Minimum = value;
if (DataGridView != null)
{
- var dataGridViewRows = DataGridView.Rows;
- var rowCount = dataGridViewRows.Count;
- for (var rowIndex = 0; rowIndex < rowCount; rowIndex++)
+ DataGridViewRowCollection dataGridViewRows = DataGridView.Rows;
+ int rowCount = dataGridViewRows.Count;
+ for (int rowIndex = 0; rowIndex < rowCount; rowIndex++)
{
- var dataGridViewRow = dataGridViewRows.SharedRow(rowIndex);
- var dataGridViewCell = dataGridViewRow.Cells[Index] as DataGridViewNumericUpDownCell;
+ DataGridViewRow dataGridViewRow = dataGridViewRows.SharedRow(rowIndex);
+ DataGridViewNumericUpDownCell dataGridViewCell =
+ dataGridViewRow.Cells[Index] as DataGridViewNumericUpDownCell;
if (dataGridViewCell != null) dataGridViewCell.SetMinimum(rowIndex, value);
}
@@ -218,12 +222,13 @@ namespace GradeCalc
NumericUpDownCellTemplate.ThousandsSeparator = value;
if (DataGridView != null)
{
- var dataGridViewRows = DataGridView.Rows;
- var rowCount = dataGridViewRows.Count;
- for (var rowIndex = 0; rowIndex < rowCount; rowIndex++)
+ DataGridViewRowCollection dataGridViewRows = DataGridView.Rows;
+ int rowCount = dataGridViewRows.Count;
+ for (int rowIndex = 0; rowIndex < rowCount; rowIndex++)
{
- var dataGridViewRow = dataGridViewRows.SharedRow(rowIndex);
- var dataGridViewCell = dataGridViewRow.Cells[Index] as DataGridViewNumericUpDownCell;
+ DataGridViewRow dataGridViewRow = dataGridViewRows.SharedRow(rowIndex);
+ DataGridViewNumericUpDownCell dataGridViewCell =
+ dataGridViewRow.Cells[Index] as DataGridViewNumericUpDownCell;
if (dataGridViewCell != null) dataGridViewCell.SetThousandsSeparator(rowIndex, value);
}
@@ -241,29 +246,23 @@ namespace GradeCalc
private DataGridViewNumericUpDownCell NumericUpDownCellTemplate => (DataGridViewNumericUpDownCell) CellTemplate;
/// Indicates whether the Increment property should be persisted.
- private bool ShouldSerializeIncrement()
- {
- return !Increment.Equals(DataGridViewNumericUpDownCell.DATAGRIDVIEWNUMERICUPDOWNCELL_defaultIncrement);
- }
+ private bool ShouldSerializeIncrement() =>
+ !Increment.Equals(DataGridViewNumericUpDownCell.DATAGRIDVIEWNUMERICUPDOWNCELL_defaultIncrement);
/// Indicates whether the Maximum property should be persisted.
- private bool ShouldSerializeMaximum()
- {
- return !Maximum.Equals(DataGridViewNumericUpDownCell.DATAGRIDVIEWNUMERICUPDOWNCELL_defaultMaximum);
- }
+ private bool ShouldSerializeMaximum() =>
+ !Maximum.Equals(DataGridViewNumericUpDownCell.DATAGRIDVIEWNUMERICUPDOWNCELL_defaultMaximum);
/// Indicates whether the Maximum property should be persisted.
- private bool ShouldSerializeMinimum()
- {
- return !Minimum.Equals(DataGridViewNumericUpDownCell.DATAGRIDVIEWNUMERICUPDOWNCELL_defaultMinimum);
- }
+ private bool ShouldSerializeMinimum() =>
+ !Minimum.Equals(DataGridViewNumericUpDownCell.DATAGRIDVIEWNUMERICUPDOWNCELL_defaultMinimum);
///
/// Returns a standard compact string representation of the column.
///
public override string ToString()
{
- var sb = new StringBuilder(100);
+ StringBuilder sb = new StringBuilder(100);
sb.Append("DataGridViewNumericUpDownColumn { Name=");
sb.Append(Name);
sb.Append(", Index=");
diff --git a/Misc/DataGridViewNumericUpDownEditingControl.cs b/Misc/DataGridViewNumericUpDownEditingControl.cs
index 9b1722b..ee173c2 100644
--- a/Misc/DataGridViewNumericUpDownEditingControl.cs
+++ b/Misc/DataGridViewNumericUpDownEditingControl.cs
@@ -1,116 +1,79 @@
using System;
using System.Drawing;
+using System.Globalization;
using System.Runtime.InteropServices;
using System.Windows.Forms;
-namespace GradeCalc
+namespace CC_Functions.Misc
{
///
- /// Defines the editing control for the DataGridViewNumericUpDownCell custom cell type.
+ /// Defines the editing control for the DataGridViewNumericUpDownCell custom cell type.
///
internal class DataGridViewNumericUpDownEditingControl : NumericUpDown, IDataGridViewEditingControl
{
- // Needed to forward keyboard messages to the child TextBox control.
- [DllImport("USER32.DLL", CharSet = CharSet.Auto)]
- private static extern IntPtr SendMessage(IntPtr hWnd, int msg, IntPtr wParam, IntPtr lParam);
-
// The grid that owns this editing control
private DataGridView dataGridView;
+ // Stores the row index in which the editing control resides
+
// Stores whether the editing control's value has changed or not
private bool valueChanged;
- // Stores the row index in which the editing control resides
- private int rowIndex;
-
///
- /// Constructor of the editing control class
+ /// Constructor of the editing control class
///
- public DataGridViewNumericUpDownEditingControl()
- {
- // The editing control must not be part of the tabbing loop
- TabStop = false;
- }
+ // The editing control must not be part of the tabbing loop
+ public DataGridViewNumericUpDownEditingControl() => TabStop = false;
// Beginning of the IDataGridViewEditingControl interface implementation
///
- /// Property which caches the grid that uses this editing control
+ /// Property which caches the grid that uses this editing control
///
public virtual DataGridView EditingControlDataGridView
{
- get {
- return dataGridView;
- }
- set {
- dataGridView = value;
- }
+ get => dataGridView;
+ set => dataGridView = value;
}
///
- /// Property which represents the current formatted value of the editing control
+ /// Property which represents the current formatted value of the editing control
///
public virtual object EditingControlFormattedValue
{
- get {
- return GetEditingControlFormattedValue(DataGridViewDataErrorContexts.Formatting);
- }
- set {
- Text = (string)value;
- }
+ get => GetEditingControlFormattedValue(DataGridViewDataErrorContexts.Formatting);
+ set => Text = (string) value;
}
///
- /// Property which represents the row in which the editing control resides
+ /// Property which represents the row in which the editing control resides
///
- public virtual int EditingControlRowIndex
- {
- get {
- return rowIndex;
- }
- set {
- rowIndex = value;
- }
- }
+ public virtual int EditingControlRowIndex { get; set; }
///
- /// Property which indicates whether the value of the editing control has changed or not
+ /// Property which indicates whether the value of the editing control has changed or not
///
public virtual bool EditingControlValueChanged
{
- get {
- return valueChanged;
- }
- set {
- valueChanged = value;
- }
+ get => valueChanged;
+ set => valueChanged = value;
}
///
- /// Property which determines which cursor must be used for the editing panel,
- /// i.e. the parent of the editing control.
+ /// Property which determines which cursor must be used for the editing panel,
+ /// i.e. the parent of the editing control.
///
- public virtual Cursor EditingPanelCursor
- {
- get {
- return Cursors.Default;
- }
- }
+ public virtual Cursor EditingPanelCursor => Cursors.Default;
///
- /// Property which indicates whether the editing control needs to be repositioned
- /// when its value changes.
+ /// Property which indicates whether the editing control needs to be repositioned
+ /// when its value changes.
///
- public virtual bool RepositionEditingControlOnValueChange
- {
- get {
- return false;
- }
- }
+ public virtual bool RepositionEditingControlOnValueChange => false;
///
- /// Method called by the grid before the editing control is shown so it can adapt to the
- /// provided cell style.
+ /// Method called by the grid before the editing control is shown so it can adapt to the
+ /// provided cell style.
///
public virtual void ApplyCellStyleToEditingControl(DataGridViewCellStyle dataGridViewCellStyle)
{
@@ -126,13 +89,14 @@ namespace GradeCalc
{
BackColor = dataGridViewCellStyle.BackColor;
}
+
ForeColor = dataGridViewCellStyle.ForeColor;
TextAlign = DataGridViewNumericUpDownCell.TranslateAlignment(dataGridViewCellStyle.Alignment);
}
///
- /// Method called by the grid on keystrokes to determine if the editing control is
- /// interested in the key or not.
+ /// Method called by the grid on keystrokes to determine if the editing control is
+ /// interested in the key or not.
///
public virtual bool EditingControlWantsInputKey(Keys keyData, bool dataGridViewWantsInputKey)
{
@@ -142,15 +106,13 @@ namespace GradeCalc
{
TextBox textBox = Controls[1] as TextBox;
if (textBox != null)
- {
// If the end of the selection is at the end of the string,
// let the DataGridView treat the key message
- if (RightToLeft == RightToLeft.No && !(textBox.SelectionLength == 0 && textBox.SelectionStart == textBox.Text.Length) ||
- RightToLeft == RightToLeft.Yes && !(textBox.SelectionLength == 0 && textBox.SelectionStart == 0))
- {
+ if ((RightToLeft == RightToLeft.No &&
+ !(textBox.SelectionLength == 0 && textBox.SelectionStart == textBox.Text.Length)) ||
+ (RightToLeft == RightToLeft.Yes &&
+ !(textBox.SelectionLength == 0 && textBox.SelectionStart == 0)))
return true;
- }
- }
break;
}
@@ -158,35 +120,27 @@ namespace GradeCalc
{
TextBox textBox = Controls[1] as TextBox;
if (textBox != null)
- {
// If the end of the selection is at the begining of the string
// or if the entire text is selected and we did not start editing,
// send this character to the dataGridView, else process the key message
- if (RightToLeft == RightToLeft.No && !(textBox.SelectionLength == 0 && textBox.SelectionStart == 0) ||
- RightToLeft == RightToLeft.Yes && !(textBox.SelectionLength == 0 && textBox.SelectionStart == textBox.Text.Length))
- {
+ if ((RightToLeft == RightToLeft.No &&
+ !(textBox.SelectionLength == 0 && textBox.SelectionStart == 0)) ||
+ (RightToLeft == RightToLeft.Yes &&
+ !(textBox.SelectionLength == 0 && textBox.SelectionStart == textBox.Text.Length)))
return true;
- }
- }
break;
}
case Keys.Down:
// If the current value hasn't reached its minimum yet, handle the key. Otherwise let
// the grid handle it.
- if (Value > Minimum)
- {
- return true;
- }
+ if (Value > Minimum) return true;
break;
case Keys.Up:
// If the current value hasn't reached its maximum yet, handle the key. Otherwise let
// the grid handle it.
- if (Value < Maximum)
- {
- return true;
- }
+ if (Value < Maximum) return true;
break;
case Keys.Home:
@@ -195,12 +149,8 @@ namespace GradeCalc
// Let the grid handle the key if the entire text is selected.
TextBox textBox = Controls[1] as TextBox;
if (textBox != null)
- {
if (textBox.SelectionLength != textBox.Text.Length)
- {
return true;
- }
- }
break;
}
@@ -209,21 +159,18 @@ namespace GradeCalc
// Let the grid handle the key if the carret is at the end of the text.
TextBox textBox = Controls[1] as TextBox;
if (textBox != null)
- {
if (textBox.SelectionLength > 0 ||
textBox.SelectionStart < textBox.Text.Length)
- {
return true;
- }
- }
break;
}
}
+
return !dataGridViewWantsInputKey;
}
///
- /// Returns the current value of the editing control.
+ /// Returns the current value of the editing control.
///
public virtual object GetEditingControlFormattedValue(DataGridViewDataErrorContexts context)
{
@@ -232,7 +179,7 @@ namespace GradeCalc
{
// Prevent the Value from being set to Maximum or Minimum when the cell is being painted.
UserEdit = (context & DataGridViewDataErrorContexts.Display) == 0;
- return Value.ToString((ThousandsSeparator ? "N" : "F") + DecimalPlaces.ToString());
+ return Value.ToString((ThousandsSeparator ? "N" : "F") + DecimalPlaces);
}
finally
{
@@ -241,8 +188,8 @@ namespace GradeCalc
}
///
- /// Called by the grid to give the editing control a chance to prepare itself for
- /// the editing session.
+ /// Called by the grid to give the editing control a chance to prepare itself for
+ /// the editing session.
///
public virtual void PrepareEditingControlForEdit(bool selectAll)
{
@@ -250,23 +197,23 @@ namespace GradeCalc
if (textBox != null)
{
if (selectAll)
- {
textBox.SelectAll();
- }
else
- {
// Do not select all the text, but
// position the caret at the end of the text
textBox.SelectionStart = textBox.Text.Length;
- }
}
}
+ // Needed to forward keyboard messages to the child TextBox control.
+ [DllImport("USER32.DLL", CharSet = CharSet.Auto)]
+ private static extern IntPtr SendMessage(IntPtr hWnd, int msg, IntPtr wParam, IntPtr lParam);
+
// End of the IDataGridViewEditingControl interface implementation
///
- /// Small utility function that updates the local dirty state and
- /// notifies the grid of the value change.
+ /// Small utility function that updates the local dirty state and
+ /// notifies the grid of the value change.
///
private void NotifyDataGridViewOfValueChange()
{
@@ -278,8 +225,8 @@ namespace GradeCalc
}
///
- /// Listen to the KeyPress notification to know when the value changed, and
- /// notify the grid of the change.
+ /// Listen to the KeyPress notification to know when the value changed, and
+ /// notify the grid of the change.
///
protected override void OnKeyPress(KeyPressEventArgs e)
{
@@ -294,47 +241,37 @@ namespace GradeCalc
}
else
{
- System.Globalization.NumberFormatInfo numberFormatInfo = System.Globalization.CultureInfo.CurrentCulture.NumberFormat;
+ NumberFormatInfo numberFormatInfo = CultureInfo.CurrentCulture.NumberFormat;
string decimalSeparatorStr = numberFormatInfo.NumberDecimalSeparator;
string groupSeparatorStr = numberFormatInfo.NumberGroupSeparator;
string negativeSignStr = numberFormatInfo.NegativeSign;
if (!string.IsNullOrEmpty(decimalSeparatorStr) && decimalSeparatorStr.Length == 1)
- {
notifyValueChange = decimalSeparatorStr[0] == e.KeyChar;
- }
if (!notifyValueChange && !string.IsNullOrEmpty(groupSeparatorStr) && groupSeparatorStr.Length == 1)
- {
notifyValueChange = groupSeparatorStr[0] == e.KeyChar;
- }
if (!notifyValueChange && !string.IsNullOrEmpty(negativeSignStr) && negativeSignStr.Length == 1)
- {
notifyValueChange = negativeSignStr[0] == e.KeyChar;
- }
}
if (notifyValueChange)
- {
// Let the DataGridView know about the value change
NotifyDataGridViewOfValueChange();
- }
}
///
- /// Listen to the ValueChanged notification to forward the change to the grid.
+ /// Listen to the ValueChanged notification to forward the change to the grid.
///
protected override void OnValueChanged(EventArgs e)
{
base.OnValueChanged(e);
if (Focused)
- {
// Let the DataGridView know about the value change
NotifyDataGridViewOfValueChange();
- }
}
///
- /// A few keyboard messages need to be forwarded to the inner textbox of the
- /// NumericUpDown control so that the first character pressed appears in it.
+ /// A few keyboard messages need to be forwarded to the inner textbox of the
+ /// NumericUpDown control so that the first character pressed appears in it.
///
protected override bool ProcessKeyEventArgs(ref Message m)
{
@@ -344,10 +281,8 @@ namespace GradeCalc
SendMessage(textBox.Handle, m.Msg, m.WParam, m.LParam);
return true;
}
- else
- {
- return base.ProcessKeyEventArgs(ref m);
- }
+
+ return base.ProcessKeyEventArgs(ref m);
}
}
}
\ No newline at end of file
diff --git a/Misc/Forms.cs b/Misc/Forms.cs
index 6671c89..8c4975a 100644
--- a/Misc/Forms.cs
+++ b/Misc/Forms.cs
@@ -5,17 +5,22 @@ using System.Windows.Forms;
namespace CC_Functions.Misc
{
- public delegate void SetPropertyDelegate(TCtl control, Expression> propexpr, TProp value) where TCtl : Control;
+ public delegate void SetPropertyDelegate(TCtl control, Expression> propexpr,
+ TProp value) where TCtl : Control;
- public delegate TProp GetPropertyDelegate(TCtl control, Expression> propexpr) where TCtl : Control;
+ public delegate TProp GetPropertyDelegate(TCtl control, Expression> propexpr)
+ where TCtl : Control;
- public delegate void InvokeActionDelegate(TCtl control, Delegate dlg, params object[] args) where TCtl : Control;
+ public delegate void InvokeActionDelegate(TCtl control, Delegate dlg, params object[] args)
+ where TCtl : Control;
- public delegate TResult InvokeFuncDelegate(TCtl control, Delegate dlg, params object[] args) where TCtl : Control;
+ public delegate TResult InvokeFuncDelegate(TCtl control, Delegate dlg, params object[] args)
+ where TCtl : Control;
public static class Forms
{
- public static void SetProperty(this TCtl control, Expression> propexpr, TProp value) where TCtl : Control
+ public static void SetProperty(this TCtl control, Expression> propexpr,
+ TProp value) where TCtl : Control
{
if (control == null)
throw new ArgumentNullException(nameof(control));
@@ -27,33 +32,36 @@ namespace CC_Functions.Misc
control.Invoke(new SetPropertyDelegate(SetProperty), control, propexpr, value);
return;
}
- var propexprm = propexpr.Body as MemberExpression;
+
+ MemberExpression propexprm = propexpr.Body as MemberExpression;
if (propexprm == null)
throw new ArgumentException("Invalid member expression.", nameof(propexpr));
- var prop = propexprm.Member as PropertyInfo;
+ PropertyInfo prop = propexprm.Member as PropertyInfo;
if (prop == null)
throw new ArgumentException("Invalid property supplied.", nameof(propexpr));
prop.SetValue(control, value);
}
- public static TProp GetProperty(this TCtl control, Expression> propexpr) where TCtl : Control
+ public static TProp GetProperty(this TCtl control, Expression> propexpr)
+ where TCtl : Control
{
if (control == null)
throw new ArgumentNullException(nameof(control));
if (propexpr == null)
throw new ArgumentNullException(nameof(propexpr));
if (control.InvokeRequired)
- return (TProp)control.Invoke(new GetPropertyDelegate(GetProperty), control, propexpr);
- var propexprm = propexpr.Body as MemberExpression;
+ return (TProp) control.Invoke(new GetPropertyDelegate(GetProperty), control, propexpr);
+ MemberExpression propexprm = propexpr.Body as MemberExpression;
if (propexprm == null)
throw new ArgumentException("Invalid member expression.", nameof(propexpr));
- var prop = propexprm.Member as PropertyInfo;
+ PropertyInfo prop = propexprm.Member as PropertyInfo;
if (prop == null)
throw new ArgumentException("Invalid property supplied.", nameof(propexpr));
- return (TProp)prop.GetValue(control);
+ return (TProp) prop.GetValue(control);
}
- public static void InvokeAction(this TCtl control, Delegate dlg, params object[] args) where TCtl : Control
+ public static void InvokeAction(this TCtl control, Delegate dlg, params object[] args)
+ where TCtl : Control
{
if (control == null)
throw new ArgumentNullException(nameof(control));
@@ -64,16 +72,21 @@ namespace CC_Functions.Misc
control.Invoke(new InvokeActionDelegate(InvokeAction), control, dlg, args);
return;
}
+
dlg.DynamicInvoke(args);
}
- public static TResult InvokeFunc(this TCtl control, Delegate dlg, params object[] args) where TCtl : Control
+ public static TResult InvokeFunc(this TCtl control, Delegate dlg, params object[] args)
+ where TCtl : Control
{
if (control == null)
throw new ArgumentNullException(nameof(control));
if (dlg == null)
throw new ArgumentNullException(nameof(dlg));
- return control.InvokeRequired ? (TResult)control.Invoke(new InvokeFuncDelegate(InvokeFunc), control, dlg, args) : (TResult)dlg.DynamicInvoke(args);
+ return control.InvokeRequired
+ ? (TResult) control.Invoke(new InvokeFuncDelegate(InvokeFunc), control,
+ dlg, args)
+ : (TResult) dlg.DynamicInvoke(args);
}
}
}
\ No newline at end of file
diff --git a/Misc/GenericExtensions.cs b/Misc/GenericExtensions.cs
index c0dbdc7..ade759d 100644
--- a/Misc/GenericExtensions.cs
+++ b/Misc/GenericExtensions.cs
@@ -23,12 +23,12 @@ namespace CC_Functions.Misc
{
try
{
- parsed = (T)o;
+ parsed = (T) o;
return true;
}
catch
{
- parsed = default(T);
+ parsed = default;
return false;
}
}
@@ -41,15 +41,21 @@ namespace CC_Functions.Misc
func();
}
- public static T ParseToEnum(string value) => (T)Enum.Parse(typeof(T), Enum.GetNames(typeof(T)).First(s => s.ToLower() == value.ToLower()));
+ public static T ParseToEnum(string value)
+ {
+ return (T) Enum.Parse(typeof(T), Enum.GetNames(typeof(T)).First(s => s.ToLower() == value.ToLower()));
+ }
- public static bool? ParseBool(string value) => (string.IsNullOrWhiteSpace(value) || value.ToLower() == "Indeterminate") ? (bool?)null : bool.Parse(value);
+ public static bool? ParseBool(string value) =>
+ string.IsNullOrWhiteSpace(value) || value.ToLower() == "Indeterminate"
+ ? (bool?) null
+ : bool.Parse(value);
public static bool AND(this bool? left, bool? right) => left.TRUE() && right.TRUE();
public static bool OR(this bool? left, bool? right) => left.TRUE() || right.TRUE();
- public static bool XOR(this bool? left, bool? right) => left.OR(right) && (!left.AND(right));
+ public static bool XOR(this bool? left, bool? right) => left.OR(right) && !left.AND(right);
public static bool TRUE(this bool? self) => self == true;
diff --git a/Misc/HID.cs b/Misc/HID.cs
index 9e26cd7..60048f0 100644
--- a/Misc/HID.cs
+++ b/Misc/HID.cs
@@ -5,7 +5,7 @@ using System.Management;
using System.Security.Cryptography;
using System.Text;
-namespace Misc
+namespace CC_Functions.Misc
{
public static class HID
{
@@ -33,7 +33,7 @@ Win32_NetworkAdapterConfiguration:MACAddress:IPEnabled";
{
if (_fingerPrint == null)
{
- var fingerprint_tmp = "";
+ string fingerprintTmp = "";
if (Type.GetType("Mono.Runtime") == null)
{
HIDClasses.Split('\r').Select(s =>
@@ -43,20 +43,21 @@ Win32_NetworkAdapterConfiguration:MACAddress:IPEnabled";
return s.Split(':');
}).ToList().ForEach(s =>
{
- using (var mc = new ManagementClass(s[0]))
- using (var moc = mc.GetInstances())
+ using (ManagementClass mc = new ManagementClass(s[0]))
+ using (ManagementObjectCollection moc = mc.GetInstances())
{
- var array = moc.OfType().ToArray();
- for (var j = 0; j < array.Length; j++)
+ ManagementBaseObject[] array = moc.OfType().ToArray();
+ for (int j = 0; j < array.Length; j++)
{
if (s.Length > 2 && array[j][s[2]].ToString() != "True") continue;
try
{
- fingerprint_tmp += array[j][s[1]].ToString();
+ fingerprintTmp += array[j][s[1]].ToString();
break;
}
catch
{
+ Console.WriteLine("Failed to read property");
}
}
}
@@ -64,7 +65,7 @@ Win32_NetworkAdapterConfiguration:MACAddress:IPEnabled";
}
else //Linux implementation. This will not work if you are using Mono on windows or do not have uname and lscpu available
{
- var p = new Process
+ Process p = new Process
{
StartInfo =
{
@@ -75,18 +76,18 @@ Win32_NetworkAdapterConfiguration:MACAddress:IPEnabled";
}
};
p.Start();
- fingerprint_tmp = p.StandardOutput.ReadToEnd();
+ fingerprintTmp = p.StandardOutput.ReadToEnd();
p.WaitForExit();
p.StartInfo.FileName = "lscpu";
- p.StartInfo.Arguments = "";
+ p.StartInfo.Arguments = "-ap";
p.Start();
- fingerprint_tmp += p.StandardOutput.ReadToEnd();
+ fingerprintTmp += p.StandardOutput.ReadToEnd();
p.WaitForExit();
}
using (MD5 sec = new MD5CryptoServiceProvider())
{
- var bt = Encoding.ASCII.GetBytes(fingerprint_tmp);
+ byte[] bt = Encoding.ASCII.GetBytes(fingerprintTmp);
_fingerPrint = sec.ComputeHash(bt);
}
}
@@ -95,14 +96,10 @@ Win32_NetworkAdapterConfiguration:MACAddress:IPEnabled";
}
}
- public static byte[] EncryptLocal(byte[] unencrypted)
- {
- return ProtectedData.Protect(unencrypted, Value, DataProtectionScope.CurrentUser);
- }
+ public static byte[] EncryptLocal(byte[] unencrypted) =>
+ ProtectedData.Protect(unencrypted, Value, DataProtectionScope.CurrentUser);
- public static byte[] DecryptLocal(byte[] encrypted)
- {
- return ProtectedData.Unprotect(encrypted, Value, DataProtectionScope.CurrentUser);
- }
+ public static byte[] DecryptLocal(byte[] encrypted) =>
+ ProtectedData.Unprotect(encrypted, Value, DataProtectionScope.CurrentUser);
}
}
\ No newline at end of file
diff --git a/Misc/IO.cs b/Misc/IO.cs
index e66f147..4de13d2 100644
--- a/Misc/IO.cs
+++ b/Misc/IO.cs
@@ -6,17 +6,10 @@ namespace CC_Functions.Misc
{
public static long GetDirectorySize(string path)
{
- try
- {
- string[] a = Directory.GetFiles(path, "*.*", SearchOption.AllDirectories);
- long size = 0;
- for (int i = 0; i < a.Length; i++)
- {
- size += new FileInfo(a[i]).Length;
- }
- return size;
- }
- catch { throw; }
+ string[] a = Directory.GetFiles(path, "*.*", SearchOption.AllDirectories);
+ long size = 0;
+ for (int i = 0; i < a.Length; i++) size += new FileInfo(a[i]).Length;
+ return size;
}
}
}
\ No newline at end of file
diff --git a/Misc/Security.cs b/Misc/Security.cs
index bffe44b..907f0f8 100644
--- a/Misc/Security.cs
+++ b/Misc/Security.cs
@@ -1,9 +1,10 @@
using System.Security.Principal;
-namespace Misc
+namespace CC_Functions.Misc
{
public static class MiscFunctions
{
- public static bool IsAdministrator => new WindowsPrincipal(WindowsIdentity.GetCurrent()).IsInRole(WindowsBuiltInRole.Administrator);
+ public static bool IsAdministrator =>
+ new WindowsPrincipal(WindowsIdentity.GetCurrent()).IsInRole(WindowsBuiltInRole.Administrator);
}
}
\ No newline at end of file
diff --git a/Misc/SelectBox.cs b/Misc/SelectBox.cs
index 110aa7a..1613166 100644
--- a/Misc/SelectBox.cs
+++ b/Misc/SelectBox.cs
@@ -1,27 +1,23 @@
using System;
-using System.Collections.Generic;
-using System.ComponentModel;
-using System.Data;
-using System.Drawing;
using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
using System.Windows.Forms;
+
namespace CC_Functions.Misc
{
- partial class SelectBox : Form
+ internal partial class SelectBox : Form
{
public T result;
+
public SelectBox(T[] Options, string title = "")
{
InitializeComponent();
Text = title;
- listBox1.Items.AddRange(Options.Select(s => (object)s).ToArray());
+ listBox1.Items.AddRange(Options.Select(s => (object) s).ToArray());
}
private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
{
- result = (T)listBox1.SelectedItem;
+ result = (T) listBox1.SelectedItem;
DialogResult = DialogResult.OK;
Close();
}
@@ -32,7 +28,7 @@ namespace CC_Functions.Misc
public static T Show(T[] Options, string title = "")
{
SelectBox sb = new SelectBox(Options, title);
- return sb.ShowDialog() == DialogResult.OK ? sb.result : default(T);
+ return sb.ShowDialog() == DialogResult.OK ? sb.result : default;
}
}
-}
+}
\ No newline at end of file
diff --git a/W32.Test/Form1.cs b/W32.Test/Form1.cs
index ac1ac3d..4928866 100644
--- a/W32.Test/Form1.cs
+++ b/W32.Test/Form1.cs
@@ -1,21 +1,23 @@
using System;
+using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Windows.Forms;
using CC_Functions.Misc;
+using CC_Functions.W32.Hooks;
using static CC_Functions.W32.Power;
namespace CC_Functions.W32.Test
{
public partial class Form1 : Form
{
- public static Wnd32 tmpWnd;
- public static Form1 mainF;
- public static Form frm;
- public static Label lab;
+ private static Wnd32 tmpWnd;
+ private static Form1 mainF;
+ private static Form frm;
+ private static Label lab;
private readonly KeyboardHook kHook;
- private Point locDelB;
private readonly MouseHook mHook;
+ private Point locDelB;
private bool moving;
private DateTime mST;
@@ -44,20 +46,17 @@ namespace CC_Functions.W32.Test
public void set_up_box(ComboBox box, Type enumT)
{
box.DataSource = Enum.GetNames(enumT);
- var tmp = Enum.GetValues(enumT);
+ Array tmp = Enum.GetValues(enumT);
box.Tag = new object[tmp.Length];
- var i = 0;
- foreach (var o in tmp)
+ int i = 0;
+ foreach (object o in tmp)
{
((object[]) box.Tag)[i] = o;
i++;
}
}
- public object get_box_value(ComboBox box)
- {
- return ((object[]) box.Tag)[box.SelectedIndex];
- }
+ public object get_box_value(ComboBox box) => ((object[]) box.Tag)[box.SelectedIndex];
private void Power_execute_Click(object sender, EventArgs e)
{
@@ -142,30 +141,15 @@ namespace CC_Functions.W32.Test
}
}
- private void Wnd_action_enabled_CheckedChanged(object sender, EventArgs e)
- {
+ private void Wnd_action_enabled_CheckedChanged(object sender, EventArgs e) =>
tmpWnd.enabled = wnd_action_enabled.Checked;
- }
- private void Wnd_action_visible_CheckedChanged(object sender, EventArgs e)
- {
+ private void Wnd_action_visible_CheckedChanged(object sender, EventArgs e) =>
tmpWnd.shown = wnd_action_visible.Checked;
- }
- private void Wnd_action_front_Click(object sender, EventArgs e)
- {
- tmpWnd.isForeground = true;
- }
+ private void Wnd_action_front_Click(object sender, EventArgs e) => tmpWnd.isForeground = true;
- private void Wnd_action_overlay_Click(object sender, EventArgs e)
- {
- tmpWnd.MakeOverlay();
- }
-
- private void Wnd_action_destroy_Click(object sender, EventArgs e)
- {
- tmpWnd.Destroy();
- }
+ private void Wnd_action_destroy_Click(object sender, EventArgs e) => tmpWnd.Destroy();
private void Wnd_select_mouse_Click(object sender, EventArgs e)
{
@@ -189,7 +173,7 @@ namespace CC_Functions.W32.Test
{
frm.Hide();
frm.WindowState = FormWindowState.Minimized;
- var tmp = Wnd32.fromPoint(MousePosition);
+ Wnd32 tmp = Wnd32.fromPoint(MousePosition);
tmpWnd.enabled = true;
tmpWnd.isForeground = true;
tmpWnd = tmp;
@@ -211,16 +195,14 @@ namespace CC_Functions.W32.Test
mHook.OnMouse -= MHook_OnMouse;
}
- private void MHook_OnMouse(MouseHookEventArgs _args)
- {
- mouse_log.Text = _args.Message + " -|- " + _args.Point + "\r\n" + mouse_log.Text;
- }
+ private void MHook_OnMouse(MouseHookEventArgs args) =>
+ mouse_log.Text = args.Message + " -|- " + args.Point + "\r\n" + mouse_log.Text;
private void Mouse_log_TextChanged(object sender, EventArgs e)
{
if (mouse_log.Lines.Length > 10)
{
- var tmp = mouse_log.Lines.ToList();
+ List tmp = mouse_log.Lines.ToList();
tmp.RemoveRange(9, mouse_log.Lines.Length - 9);
mouse_log.Lines = tmp.ToArray();
tmp = null;
@@ -235,27 +217,23 @@ namespace CC_Functions.W32.Test
kHook.OnKeyPress -= KHook_OnKeyPress;
}
- private void KHook_OnKeyPress(KeyboardHookEventArgs _args)
- {
- keyboard_log.Text = _args.Key + "\r\n" + keyboard_log.Text;
- }
+ private void KHook_OnKeyPress(KeyboardHookEventArgs args) =>
+ keyboard_log.Text = args.Key + "\r\n" + keyboard_log.Text;
private void Keyboard_log_TextChanged(object sender, EventArgs e)
{
if (keyboard_log.Lines.Length > 10)
{
- var tmp = keyboard_log.Lines.ToList();
+ List tmp = keyboard_log.Lines.ToList();
tmp.RemoveRange(9, keyboard_log.Lines.Length - 9);
keyboard_log.Lines = tmp.ToArray();
tmp = null;
}
}
- private void Wnd_action_pos_Click(object sender, EventArgs e)
- {
+ private void Wnd_action_pos_Click(object sender, EventArgs e) =>
tmpWnd.position = new Rectangle(wnd_action_pos_x_bar.Value, wnd_action_pos_y_bar.Value,
wnd_action_pos_w_bar.Value, wnd_action_pos_h_bar.Value);
- }
private void Exit_Click(object sender, EventArgs e)
{
@@ -276,10 +254,7 @@ namespace CC_Functions.W32.Test
moving = true;
}
- private void Exit_MouseUp(object sender, MouseEventArgs e)
- {
- moving = false;
- }
+ private void Exit_MouseUp(object sender, MouseEventArgs e) => moving = false;
private void Wnd_action_style_SelectedIndexChanged(object sender, EventArgs e)
{
@@ -287,9 +262,7 @@ namespace CC_Functions.W32.Test
tmpWnd.state = status;
}
- private void wnd_action_overlay_CheckedChanged(object sender, EventArgs e)
- {
+ private void wnd_action_overlay_CheckedChanged(object sender, EventArgs e) =>
tmpWnd.overlay = wnd_action_overlay.Checked;
- }
}
}
\ No newline at end of file
diff --git a/W32/Hooks/KeyboardHook.cs b/W32/Hooks/KeyboardHook.cs
index 3cd5a16..b2540a7 100644
--- a/W32/Hooks/KeyboardHook.cs
+++ b/W32/Hooks/KeyboardHook.cs
@@ -4,39 +4,39 @@ using System.Diagnostics;
using System.Runtime.InteropServices;
using System.Windows.Forms;
-namespace CC_Functions.W32
+namespace CC_Functions.W32.Hooks
{
public sealed class KeyboardHook : IDisposable
{
- public delegate void keyPress(KeyboardHookEventArgs _args);
+ public delegate void KeyPress(KeyboardHookEventArgs args);
private const int WH_KEYBOARD_LL = 13;
private const int WM_KEYDOWN = 0x0100;
- private static readonly List instances = new List();
- private static readonly LowLevelKeyboardProc _proc = HookCallback;
+ private static readonly List Instances = new List();
+ private static readonly LowLevelKeyboardProc Proc = HookCallback;
private static IntPtr _hookID = IntPtr.Zero;
public KeyboardHook()
{
- if (instances.Count == 0)
- _hookID = SetHook(_proc);
- instances.Add(this);
+ if (Instances.Count == 0)
+ _hookID = SetHook(Proc);
+ Instances.Add(this);
}
public void Dispose()
{
- instances.Remove(this);
- if (instances.Count == 0)
+ Instances.Remove(this);
+ if (Instances.Count == 0)
UnhookWindowsHookEx(_hookID);
}
- public event keyPress OnKeyPress;
+ public event KeyPress OnKeyPress;
private IntPtr SetHook(LowLevelKeyboardProc proc)
{
- using (var curProcess = Process.GetCurrentProcess())
- using (var curModule = curProcess.MainModule)
+ using (Process curProcess = Process.GetCurrentProcess())
+ using (ProcessModule curModule = curProcess.MainModule)
{
return SetWindowsHookEx(WH_KEYBOARD_LL, proc, GetModuleHandle(curModule.ModuleName), 0);
}
@@ -46,9 +46,9 @@ namespace CC_Functions.W32
{
if (nCode >= 0 && wParam == (IntPtr) WM_KEYDOWN)
{
- var vkCode = Marshal.ReadInt32(lParam);
- for (var i = 0; i < instances.Count; i++)
- instances[i].OnKeyPress?.Invoke(new KeyboardHookEventArgs((Keys) vkCode));
+ int vkCode = Marshal.ReadInt32(lParam);
+ for (int i = 0; i < Instances.Count; i++)
+ Instances[i].OnKeyPress?.Invoke(new KeyboardHookEventArgs((Keys) vkCode));
}
return CallNextHookEx(_hookID, nCode, wParam, lParam);
diff --git a/W32/Hooks/KeyboardHookEventArgs.cs b/W32/Hooks/KeyboardHookEventArgs.cs
index e9e6c58..cff559f 100644
--- a/W32/Hooks/KeyboardHookEventArgs.cs
+++ b/W32/Hooks/KeyboardHookEventArgs.cs
@@ -1,20 +1,14 @@
using System;
using System.Windows.Forms;
-namespace CC_Functions.W32
+namespace CC_Functions.W32.Hooks
{
public sealed class KeyboardHookEventArgs : EventArgs
{
- public KeyboardHookEventArgs(Keys key)
- {
- Key = key;
- }
+ public KeyboardHookEventArgs(Keys key) => Key = key;
public Keys Key { get; }
- public override string ToString()
- {
- return Key.ToString();
- }
+ public override string ToString() => Key.ToString();
}
}
\ No newline at end of file
diff --git a/W32/Hooks/MouseHook.cs b/W32/Hooks/MouseHook.cs
index 6ee2b93..52f0d54 100644
--- a/W32/Hooks/MouseHook.cs
+++ b/W32/Hooks/MouseHook.cs
@@ -4,11 +4,11 @@ using System.Diagnostics;
using System.Drawing;
using System.Runtime.InteropServices;
-namespace CC_Functions.W32
+namespace CC_Functions.W32.Hooks
{
public sealed class MouseHook : IDisposable
{
- public delegate void mouseEvent(MouseHookEventArgs _args);
+ public delegate void MouseEvent(MouseHookEventArgs args);
public enum MouseMessages
{
@@ -22,30 +22,30 @@ namespace CC_Functions.W32
private const int WH_MOUSE_LL = 14;
- private static readonly List instances = new List();
- private static readonly LowLevelMouseProc _proc = HookCallback;
+ private static readonly List Instances = new List();
+ private static readonly LowLevelMouseProc Proc = HookCallback;
private static IntPtr _hookID = IntPtr.Zero;
public MouseHook()
{
- if (instances.Count == 0)
- _hookID = SetHook(_proc);
- instances.Add(this);
+ if (Instances.Count == 0)
+ _hookID = SetHook(Proc);
+ Instances.Add(this);
}
public void Dispose()
{
- instances.Remove(this);
- if (instances.Count == 0)
+ Instances.Remove(this);
+ if (Instances.Count == 0)
UnhookWindowsHookEx(_hookID);
}
- public event mouseEvent OnMouse;
+ public event MouseEvent OnMouse;
private static IntPtr SetHook(LowLevelMouseProc proc)
{
- using (var curProcess = Process.GetCurrentProcess())
- using (var curModule = curProcess.MainModule)
+ using (Process curProcess = Process.GetCurrentProcess())
+ using (ProcessModule curModule = curProcess.MainModule)
{
return SetWindowsHookEx(WH_MOUSE_LL, proc, GetModuleHandle(curModule.ModuleName), 0);
}
@@ -55,9 +55,9 @@ namespace CC_Functions.W32
{
if (nCode >= 0)
{
- var hookStruct = (MSLLHOOKSTRUCT) Marshal.PtrToStructure(lParam, typeof(MSLLHOOKSTRUCT));
- for (var i = 0; i < instances.Count; i++)
- instances[i].OnMouse?.Invoke(new MouseHookEventArgs(new Point(hookStruct.pt.x, hookStruct.pt.y),
+ MSLLHOOKSTRUCT hookStruct = (MSLLHOOKSTRUCT) Marshal.PtrToStructure(lParam, typeof(MSLLHOOKSTRUCT));
+ for (int i = 0; i < Instances.Count; i++)
+ Instances[i].OnMouse?.Invoke(new MouseHookEventArgs(new Point(hookStruct.pt.x, hookStruct.pt.y),
(MouseMessages) wParam));
}
diff --git a/W32/Hooks/MouseHookEventArgs.cs b/W32/Hooks/MouseHookEventArgs.cs
index 8934752..9873395 100644
--- a/W32/Hooks/MouseHookEventArgs.cs
+++ b/W32/Hooks/MouseHookEventArgs.cs
@@ -1,7 +1,7 @@
using System;
using System.Drawing;
-namespace CC_Functions.W32
+namespace CC_Functions.W32.Hooks
{
public class MouseHookEventArgs : EventArgs
{
@@ -14,9 +14,6 @@ namespace CC_Functions.W32
public Point Point { get; }
public MouseHook.MouseMessages Message { get; }
- public override string ToString()
- {
- return Message + "; " + Point;
- }
+ public override string ToString() => Message + "; " + Point;
}
}
\ No newline at end of file
diff --git a/W32/KeyboardReader.cs b/W32/KeyboardReader.cs
index 2c5cfec..0e0930e 100644
--- a/W32/KeyboardReader.cs
+++ b/W32/KeyboardReader.cs
@@ -10,8 +10,8 @@ namespace CC_Functions.W32
public static bool IsKeyDown(Keys key)
{
- var state = 0;
- var retVal = GetKeyState((int) key);
+ int state = 0;
+ short retVal = GetKeyState((int) key);
if ((retVal & 0x8000) == 0x8000)
state |= 1;
if ((retVal & 1) == 1)
diff --git a/W32/Power.cs b/W32/Power.cs
index 982286d..46cbd37 100644
--- a/W32/Power.cs
+++ b/W32/Power.cs
@@ -108,10 +108,8 @@ namespace CC_Functions.W32
{
if (mode == ShutdownMode.BSoD)
{
- bool t1;
- uint t2;
- RtlAdjustPrivilege(19, true, false, out t1);
- NtRaiseHardError(0xc0000022, 0, 0, IntPtr.Zero, 6, out t2);
+ RtlAdjustPrivilege(19, true, false, out bool _);
+ NtRaiseHardError(0xc0000022, 0, 0, IntPtr.Zero, 6, out uint _);
}
else
{
diff --git a/W32/Privileges.cs b/W32/Privileges.cs
index 600428a..5bcecf9 100644
--- a/W32/Privileges.cs
+++ b/W32/Privileges.cs
@@ -91,22 +91,22 @@ namespace CC_Functions.W32
{
if (!Enum.IsDefined(typeof(SecurityEntity), securityEntity))
throw new InvalidEnumArgumentException("securityEntity", (int) securityEntity, typeof(SecurityEntity));
- var securityEntityValue = securityEntity.ToString();
+ string securityEntityValue = securityEntity.ToString();
try
{
- var locallyUniqueIdentifier = new NativeMethods.LUID();
+ NativeMethods.LUID locallyUniqueIdentifier = new NativeMethods.LUID();
if (NativeMethods.LookupPrivilegeValue(null, securityEntityValue, ref locallyUniqueIdentifier))
{
- var TOKEN_PRIVILEGES = new NativeMethods.TOKEN_PRIVILEGES
+ NativeMethods.TOKEN_PRIVILEGES TOKEN_PRIVILEGES = new NativeMethods.TOKEN_PRIVILEGES
{
PrivilegeCount = 1,
Attributes = NativeMethods.SE_PRIVILEGE_ENABLED,
Luid = locallyUniqueIdentifier
};
- var tokenHandle = IntPtr.Zero;
+ IntPtr tokenHandle = IntPtr.Zero;
try
{
- var currentProcess = NativeMethods.GetCurrentProcess();
+ IntPtr currentProcess = NativeMethods.GetCurrentProcess();
if (NativeMethods.OpenProcessToken(currentProcess,
NativeMethods.TOKEN_ADJUST_PRIVILEGES | NativeMethods.TOKEN_QUERY, out tokenHandle))
{
@@ -153,10 +153,7 @@ namespace CC_Functions.W32
}
}
- public static SecurityEntity EntityToEntity(SecurityEntity2 entity)
- {
- return (SecurityEntity) entity;
- }
+ public static SecurityEntity EntityToEntity(SecurityEntity2 entity) => (SecurityEntity) entity;
internal static class NativeMethods
{
diff --git a/W32/Wnd32.cs b/W32/Wnd32.cs
index 5fe6451..79514e8 100644
--- a/W32/Wnd32.cs
+++ b/W32/Wnd32.cs
@@ -15,35 +15,18 @@ namespace CC_Functions.W32
#region CreateInstance
- private Wnd32(IntPtr wndref)
- {
- hWnd = wndref;
- }
+ private Wnd32(IntPtr wndref) => hWnd = wndref;
- public static Wnd32 fromHandle(IntPtr handle)
- {
- return new Wnd32(handle);
- }
+ public static Wnd32 fromHandle(IntPtr handle) => new Wnd32(handle);
- public static Wnd32 fromMetadata(string lpClassName = null, string lpWindowName = null)
- {
- return fromHandle(FindWindow(lpClassName, lpWindowName));
- }
+ public static Wnd32 fromMetadata(string lpClassName = null, string lpWindowName = null) =>
+ fromHandle(FindWindow(lpClassName, lpWindowName));
- public static Wnd32 fromPoint(Point point)
- {
- return fromHandle(WindowFromPoint(point.X, point.Y));
- }
+ public static Wnd32 fromPoint(Point point) => fromHandle(WindowFromPoint(point.X, point.Y));
- public static Wnd32 fromForm(Form form)
- {
- return fromHandle(form.Handle);
- }
+ public static Wnd32 fromForm(Form form) => fromHandle(form.Handle);
- public static Wnd32 foreground()
- {
- return fromHandle(GetForegroundWindow());
- }
+ public static Wnd32 foreground() => fromHandle(GetForegroundWindow());
public static Wnd32[] getVisible()
{
@@ -61,8 +44,8 @@ namespace CC_Functions.W32
{
get
{
- var length = GetWindowTextLength(hWnd);
- var sb = new StringBuilder(length + 1);
+ int length = GetWindowTextLength(hWnd);
+ StringBuilder sb = new StringBuilder(length + 1);
GetWindowText(hWnd, sb, sb.Capacity);
return sb.ToString();
}
@@ -73,14 +56,14 @@ namespace CC_Functions.W32
{
get
{
- var Rect = new RECT();
+ RECT Rect = new RECT();
GetWindowRect(hWnd, ref Rect);
return new Rectangle(new Point(Rect.left, Rect.top),
new Size(Rect.right - Rect.left, Rect.bottom - Rect.top));
}
set
{
- var Rect = new RECT();
+ RECT Rect = new RECT();
GetWindowRect(hWnd, ref Rect);
MoveWindow(hWnd, value.X, value.Y, value.Width, value.Height, true);
}
@@ -109,7 +92,7 @@ namespace CC_Functions.W32
{
get
{
- var hicon = SendMessage(hWnd, 0x7F, 1, 0);
+ IntPtr hicon = SendMessage(hWnd, 0x7F, 1, 0);
if (hicon == IntPtr.Zero)
hicon = SendMessage(hWnd, 0x7F, 0, 0);
if (hicon == IntPtr.Zero)
@@ -134,7 +117,7 @@ namespace CC_Functions.W32
{
get
{
- var ClassName = new StringBuilder(256);
+ StringBuilder ClassName = new StringBuilder(256);
_ = GetClassName(hWnd, ClassName, ClassName.Capacity);
return ClassName.ToString();
}
@@ -144,7 +127,7 @@ namespace CC_Functions.W32
{
get
{
- var style = GetWindowLong(hWnd, -16);
+ int style = GetWindowLong(hWnd, -16);
if ((style & 0x01000000) == 0x01000000)
return FormWindowState.Maximized;
if ((style & 0x20000000) == 0x20000000)
@@ -179,7 +162,7 @@ namespace CC_Functions.W32
{
set
{
- var tmp = position;
+ Rectangle tmp = position;
_ = SetWindowPos(hWnd, value ? HWND_TOPMOST : HWND_NOTOPMOST, tmp.X, tmp.Y, tmp.Width, tmp.Height,
value ? SWP_NOMOVE | SWP_NOSIZE : 0);
}
@@ -194,35 +177,17 @@ namespace CC_Functions.W32
public bool stillExists => IsWindow(hWnd);
- public override string ToString()
- {
- return hWnd + "; " + title + "; " + position;
- }
+ public override string ToString() => hWnd + "; " + title + "; " + position;
- public override bool Equals(object obj)
- {
- return Equals(obj as Wnd32);
- }
+ public override bool Equals(object obj) => Equals(obj as Wnd32);
- public bool Equals(Wnd32 other)
- {
- return other != null && EqualityComparer.Default.Equals(hWnd, other.hWnd);
- }
+ public bool Equals(Wnd32 other) => other != null && EqualityComparer.Default.Equals(hWnd, other.hWnd);
- public override int GetHashCode()
- {
- return -75345830 + EqualityComparer.Default.GetHashCode(hWnd);
- }
+ public override int GetHashCode() => -75345830 + EqualityComparer.Default.GetHashCode(hWnd);
- public static bool operator ==(Wnd32 left, Wnd32 right)
- {
- return EqualityComparer.Default.Equals(left, right);
- }
+ public static bool operator ==(Wnd32 left, Wnd32 right) => EqualityComparer.Default.Equals(left, right);
- public static bool operator !=(Wnd32 left, Wnd32 right)
- {
- return !(left == right);
- }
+ public static bool operator !=(Wnd32 left, Wnd32 right) => !(left == right);
#endregion InstanceActions
@@ -322,7 +287,7 @@ namespace CC_Functions.W32
private static bool FilterCallback(IntPtr hWnd, int lParam)
{
- var sb_title = new StringBuilder(1024);
+ StringBuilder sb_title = new StringBuilder(1024);
GetWindowText(hWnd, sb_title, sb_title.Capacity);
if (IsWindowVisible(hWnd) && string.IsNullOrEmpty(sb_title.ToString()) == false) WindowHandles.Add(hWnd);
return true;