public override void InitializeEditingControl(int rowIndex, object initialFormattedValue, DataGridViewCellStyle dataGridViewCellStyle) { base.InitializeEditingControl(rowIndex, initialFormattedValue, dataGridViewCellStyle); NumericUpDownEditingControl ctl = DataGridView.EditingControl as NumericUpDownEditingControl; ctl.Minimum = this.min; ctl.Maximum = this.max; ctl.Value = Convert.ToDecimal(this.Value); }
public void TestNumericUpDownEditingControl_HasCorrectSettings() { //---------------Set up test pack------------------- //---------------Assert Precondition---------------- //---------------Execute Test ---------------------- NumericUpDownEditingControl editingControl = new NumericUpDownEditingControl(); //---------------Test Result ----------------------- Assert.AreEqual(2, editingControl.DecimalPlaces); Assert.IsFalse(editingControl.RepositionEditingControlOnValueChange); Assert.AreEqual(0, editingControl.EditingControlRowIndex); Assert.IsNull(editingControl.EditingControlDataGridView); Assert.IsFalse(editingControl.EditingControlValueChanged); }
public void TestNumericUpDownEditingControl_EditingControlFormattedValue() { //---------------Set up test pack------------------- NumericUpDownEditingControl editingControl = new NumericUpDownEditingControl(); //---------------Assert Precondition---------------- string defaultValueString = 0D.ToString("0.00"); Assert.AreEqual(defaultValueString, editingControl.EditingControlFormattedValue); //Assert.AreEqual(defaultValueString, editingControl.GetEditingControlFormattedValue(null)); //---------------Execute Test ---------------------- // REQUIRES A PARENT GRID FOR DIRTY NOTIFICATION, NOT WORTH THE TROUBLE? //Decimal dtValue = 12.345; //editingControl.EditingControlFormattedValue = dtValue.ToString(); ////---------------Test Result ----------------------- //Assert.AreEqual(dtValue.ToString("0.00"), editingControl.EditingControlFormattedValue); }
private void dataGridView1_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e) { var ctl = e.Control as NumericUpDownEditingControl; if (ctl != null) //&& ctl != lastCtl { if (handler == null) { handler = new EventHandler(myUpDownCtl_ValueChanged); //save a handler has better performance } //Event => ValueChanged: just fires for Up/Dn btn or when press enter, TextChanged: also fired during user typing if (lastCtl != null) { lastCtl.ValueChanged -= handler; //ensure we remove our handler. } lastCtl = ctl; lastCtl.ValueChanged += handler; //we can use myUpDownCtl_ValueChanged directly instead of that handler var //handler(sender, EventArgs.Empty); } }
public override void InitializeEditingControl(int rowIndex, object initialFormattedValue, DataGridViewCellStyle dataGridViewCellStyle) { // Set the value of the editing control to the current cell value. base.InitializeEditingControl(rowIndex, initialFormattedValue, dataGridViewCellStyle); NumericUpDownEditingControl ctl = DataGridView.EditingControl as NumericUpDownEditingControl; // Use the default row value when Value property is null. if (this.Value == null) { ctl.Value = (decimal)this.DefaultNewRowValue; } else { var value = (float)this.Value; ctl.Value = (decimal)value; } }