private void colorReset(GridProperty gp) { int axis = (int)gp / 2; switch (gp) { case GridProperty.X_LENGTH: case GridProperty.Y_LENGTH: for (int i = numGridLines * axis; i < numGridLines * (axis + 1); i++) { gridLineColors[i] = i % numGridLines == originLineIndex ? originColor : baseColor; } colorGridLines(); break; case GridProperty.X_SCALE: case GridProperty.Y_SCALE: for (int i = 0; i < numGridLines; i++) { TextMeshPro num = gridNums[axis][i].GetComponent <TextMeshPro>(); num.color = new Color(originColor.r, originColor.g, originColor.b, num.color.a); } break; } }
public IEnumerator setProperty(GridProperty gp, float newVal, float time) { //queueing stuff int p = (int)gp; yield return(queueCommand(p)); if (gridProperties[p] == newVal) { yield return(null); isOpRunning[p] = false; yield break; } //color pulse float oldVal = gridProperties[p]; yield return(pulseColorAxis(p < 2, p % 2 == 0, (p % 2 == 0) ? newVal > oldVal : newVal < oldVal)); //wowow messy //shifting the var float timeElapsed = 0f; while (timeElapsed + Time.deltaTime <= time) { timeElapsed += Time.deltaTime; gridProperties[p] = oldVal + (newVal - oldVal) * timeElapsed / time; drawGrid(); yield return(null); } gridProperties[p] = newVal; drawGrid(); //unqueue the command colorReset(gp); isOpRunning[p] = false; }
public override object EditValue(System.ComponentModel.ITypeDescriptorContext context, System.IServiceProvider provider, object value) { IWindowsFormsEditorService edSvc = (IWindowsFormsEditorService)provider.GetService(typeof(IWindowsFormsEditorService)); if (edSvc != null) { //if (WorkbenchSingleton.Workbench.ActiveWorkbenchWindow is FormDesignerWorkbenchWindow) //{ FormProvoider.FormItemInfo formItemInfo = ((DockFormDesigner)DockWindowFactory.Instance.CurrDockWindow).SelectedControl; switch (formItemInfo.formItemType.ToString()) { case "1": EditProperty editProperty = new EditProperty(formItemInfo); editProperty.ShowDialog(); break; case "5": TableControlProperty frmTable = new TableControlProperty(formItemInfo.formItemID.ToString()); frmTable.ShowDialog(); break; case "7": GridProperty frmGrid = new GridProperty(formItemInfo.formItemID.ToString()); frmGrid.ShowDialog(); break; case "20": RadioButtonListSet frm = new RadioButtonListSet(formItemInfo.formItemID.ToString()); frm.ShowDialog(); break; default: MessageBox.Show("此控件无此项设置!"); break; } //} } return(value); }
protected override void Initialize() { sprites = GetGridProperty("sprites"); }
/// <summary> /// Check what values are passed and manupilate as needed by the math expression given /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void dataGridView_CellEndEdit(object sender, DataGridViewCellEventArgs e) { Mathematics math = new Mathematics(); MathExpression mathExpression = new MathExpression(); ExpressionValues expresionValue = new ExpressionValues(); GridProperty gridProperty = new GridProperty(); try { if (dataGridView.Rows[e.RowIndex].Cells[e.ColumnIndex].Value != null) { string cell = dataGridView.Rows[e.RowIndex].Cells[e.ColumnIndex].Value.ToString(); //Define the Mathematical expressions needed and check the value that wi determine the calculation // mathExpression = math.MathExpression(cell, dataGridView.ColumnCount); dataGridView.Rows[e.RowIndex].Cells[e.ColumnIndex].Value = math.MathExpression(cell, dataGridView.ColumnCount); //Check if a calculation needs to happen //if (mathExpression.mathExpressionSymbol != -1) //{ // gridProperty.column = new int[dataGridView.ColumnCount]; // gridProperty.row = new int[dataGridView.RowCount]; // expresionValue.value = new string[dataGridView.ColumnCount]; // Alphabet.AlphabetEnum rowIndex = (Alphabet.AlphabetEnum)e.RowIndex; // string[] names = Enum.GetNames(rowIndex.GetType()); // //Check if a cell value is used with the enum provided // for (int i = 0; i < names.Length; i++) // { // if (names[i] == cell.Substring(mathExpression.mathExpressionSymbol + 1, mathExpression.mathExpressionSymbol + 1)) // { // gridProperty.column[0] = i; // break; // } // else // { // gridProperty.column[0] = -1; // } // } // // gridProperty.column = Alphabet.AlphabetLetter(mathExpression, cell,e.RowIndex,0); // //Check if a cell value is used or if it is a fixed numerical value // if (gridProperty.column[0] != -1) // { // //If a cell value is used use the cell value // if(mathExpression.mathSymbol[4] != 0) // { // gridProperty.row[0] = Convert.ToInt32(cell.Substring(mathExpression.mathExpressionSymbol + 2, mathExpression.mathSymbol[4] - (mathExpression.mathExpressionSymbol + 2))); // if (dataGridView.Rows[gridProperty.row[0] - 1].Cells[gridProperty.column[0]].Value != null) // { // expresionValue.value[0] = dataGridView.Rows[gridProperty.row[0] - 1].Cells[gridProperty.column[0]].Value.ToString(); // } // } // else // { // gridProperty.row[0] = Convert.ToInt32(cell.Substring(mathExpression.mathExpressionSymbol + 2)); // //gridProperty.column[0] = dataGridView.Rows[gridProperty.row[0] - 1].Cells[gridProperty.column[0]].Value.ToString() // dataGridView.Rows[e.RowIndex].Cells[e.ColumnIndex].Value = dataGridView.Rows[gridProperty.row[0]-1].Cells[gridProperty.column[0]].Value.ToString(); // } // } // else // { // gridProperty.row[0] = Convert.ToInt32(cell.Substring(mathExpression.mathExpressionSymbol + 1, mathExpression.mathSymbol[4] - 1)); // expresionValue.value[0] = gridProperty.row[0].ToString(); // } // // Check the length of the cell text to make sure it is cell values or some cell values // if (cell.Length > 3) // { // for (int j = 0; j < names.Length; j++) // { // if (names[j] == cell.Substring(mathExpression.mathSymbol[4] + 1, 1)) // { // gridProperty.column[1] = j; // break; // } // else // { // gridProperty.column[1] = -1; // } // } // //gridProperty.column = Alphabet.AlphabetLetter(mathExpression, cell, e.RowIndex, 1); // //Check if a cell value is used or if it is a fixed numerical value // if (gridProperty.column[1] != -1) // { // //If a cell value is used use the cell value // gridProperty.row[1] = Convert.ToInt32(cell.Substring(mathExpression.mathSymbol[4] + 2)); // if (dataGridView.Rows[gridProperty.row[1] - 1].Cells[gridProperty.column[1]].Value != null) // { // expresionValue.value[1] = dataGridView.Rows[gridProperty.row[1] - 1].Cells[gridProperty.column[1]].Value.ToString(); // } // } // else // { // gridProperty.row[1] = Convert.ToInt32(cell.Substring(mathExpression.mathSymbol[4] + 1)); // expresionValue.value[1] = gridProperty.row[1].ToString(); // } // } // else // { // mathExpression.mathCalculationSymbol = "default"; // } // //Switch to call the right Mathermatical Expression // switch (mathExpression.mathCalculationSymbol) // { // case "+": // dataGridView.Rows[e.RowIndex].Cells[e.ColumnIndex].Value = math.Add(expresionValue); // break; // case "-": // dataGridView.Rows[e.RowIndex].Cells[e.ColumnIndex].Value = math.Subtract(expresionValue); // break; // case "*": // dataGridView.Rows[e.RowIndex].Cells[e.ColumnIndex].Value = math.Multiply(expresionValue); // break; // case "/": // dataGridView.Rows[e.RowIndex].Cells[e.ColumnIndex].Value = math.Devide(expresionValue); // break; // default: // // dataGridView.Rows[e.RowIndex].Cells[e.ColumnIndex].Value = expresionValue.value[0]; // break; // } //} } } catch (Exception ex) { // exception written to active cell MessageBox.Show("An Error occured on the cell: " + ex); } }
set => this.SetValue(GridProperty, value);
/// <summary> /// Check what values are passed and manupilate as needed by the math expression given /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void dataGridView_CellEndEdit(object sender, DataGridViewCellEventArgs e) { Mathematics math = new Mathematics(); MathExpression mathExpression = new MathExpression(); ExpressionValues expresionValue = new ExpressionValues(); GridProperty gridProperty = new GridProperty(); gridProperty.column = new int[dataGridView.ColumnCount]; gridProperty.row = new int[dataGridView.RowCount]; try { if (dataGridView.Rows[e.RowIndex].Cells[e.ColumnIndex].Value != null) { //get info from cell to string for manupilation string cell = dataGridView.Rows[e.RowIndex].Cells[e.ColumnIndex].Value.ToString(); //check if the string is null or empty if (!string.IsNullOrEmpty(cell)) { //Check if single value needs to be written or calculation needs to follow if (cell.Substring(0, 1) == "=") { var letterNumberLocation = Regex.Matches(cell, @"[a-zA-Z]{0,1}\d{0,3}"); //check if a value needs to be copied or if calculation needs to happen if (letterNumberLocation.Count < 4) { cell = cell.Substring(1); Alphabet.AlphabetEnum rowIndex = (Alphabet.AlphabetEnum)e.RowIndex; string[] names = Enum.GetNames(rowIndex.GetType()); // Check if a cell value is used with the enum provided for (int i = 0; i < names.Length; i++) { if (names[i] == cell.Substring(0, 1)) { //copy the value found to the new column gridProperty.column[i] = i; gridProperty.row[i] = Convert.ToInt32(cell.Substring(1)); dataGridView.Rows[e.RowIndex].Cells[e.ColumnIndex].Value = dataGridView.Rows[gridProperty.row[gridProperty.row[i]]].Cells[gridProperty.column[gridProperty.column[i]]].Value.ToString(); break; } } } else { int count = 0; expresionValue.value = new string[dataGridView.ColumnCount]; //Define the Mathematical expressions needed and check the value that wi determine the calculation cell = cell.Substring(1); string newCell = null; //Regex ecpressions to get the row and column values for string munipilation bool errorCounter = Regex.IsMatch(cell, @"[a-zA-Z]"); var letterLocation = Regex.Matches(cell, @"[a-zA-Z]{0,1}"); //var letterNumberLocation = Regex.Matches(cell, @"[a-zA-Z]{0,1}\d{0,3}"); var numberLocation = Regex.Matches(cell, @"\d{0,3}"); int numberCount = Regex.Matches(cell, @"\d{1,3}").Count; //check if Alpabetical symbols are available if (false != errorCounter) { for (int g = 0; g < numberLocation.Count; g++) { if (!string.IsNullOrEmpty(numberLocation[g].ToString())) { Alphabet.AlphabetEnum rowIndex = (Alphabet.AlphabetEnum)e.RowIndex; string[] names = Enum.GetNames(rowIndex.GetType()); // Check if a cell value is used with the enum provided for (int i = 0; i < names.Length; i++) { if (g == 0) { //Check the first value that comes in if (names[i] == letterLocation[g].ToString()) { //use the alphabet value to determine the numerical value on where to find the value gridProperty.column[count] = i; gridProperty.row[count] = Convert.ToInt32(cell.Substring(numberLocation[g].Index, numberLocation[g].Length)); expresionValue.value[count] = dataGridView.Rows[gridProperty.row[g] - 1].Cells[gridProperty.column[g]].Value.ToString(); break; } else { //if it does not have a aphabetical value wright it straigt into the array expresionValue.value[count] = numberLocation[g].ToString(); } } else { // calculate and manipulate the rest of the values from 1 up if (names[i] == letterLocation[g - 1].ToString()) { gridProperty.column[count] = i; gridProperty.row[count] = Convert.ToInt32(cell.Substring(numberLocation[g].Index, numberLocation[g].Length)); expresionValue.value[count] = dataGridView.Rows[gridProperty.row[count] - 1].Cells[gridProperty.column[count]].Value.ToString(); break; } else { expresionValue.value[count] = numberLocation[g].ToString(); } } } //create the new string from the values collected from the cell to do the calculations if (count == 0) { newCell = expresionValue.value[count] + cell.Substring(numberLocation[g].Index + numberLocation[g].Length, 1); } else { if (numberCount - 1 == count) { newCell = newCell + expresionValue.value[count]; } else { newCell = newCell + expresionValue.value[count] + cell.Substring(numberLocation[g].Index + numberLocation[g].Length, 1); } } count++; } } } else { newCell = cell; } //pass the new string with the values to the calculation method dataGridView.Rows[e.RowIndex].Cells[e.ColumnIndex].Value = math.MathExpression("=" + newCell, 1); } } } } } catch (Exception ex) { // exception Given in pop up box MessageBox.Show("An Error occured on the cell: " + ex); } }
set => SetValue(GridProperty, value);