How can I Show MunericUpDown control as one of the editable columns in UltraGrid?
Please help on this.
Thanks,
Strictly speaking the answer to your question is to use the UltraControlContainerEditor to host a NumericUpDown control, and assign the UltraControlContainerEditor to the column's EditorComponent property.
Another approach is to use the column's masking and spin button capabilities to do it, like so:
UltraGridColumn column = e.Layout.Bands[x].Columns[y];column.MaskInput = "nnn";column.MinValue = 0;column.MaxValue = 999;column.Style = Infragistics.Win.UltraWinGrid.ColumnStyle.IntegerWithSpin;column.ButtonDisplayStyle = Infragistics.Win.UltraWinGrid.ButtonDisplayStyle.Always;
It works. Thanks your great support.
band.Columns[6].MaskInput = "nnn.n"; band.Columns[6].MinValue = 0.0; band.Columns[6].MaxValue = 999.9; band.Columns[6].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DoubleWithSpin; band.Columns[6].ButtonDisplayStyle = Infragistics.Win.UltraWinGrid.ButtonDisplayStyle.Always;
I set the property as above. The default increament is 0.1. How can I set it as 1 when clicking the up or down narrow?
Any suggestion will be appreciated.
Hi,
I tried this out and the spin buttons are context sensitive. If the caret is before the decimal point, they will spin by 1. If the caret is after the decimal point, they will spin by 0.1.
If you want it to always be 1, you will need to use an editor:
UltraGridColumn column = band.Columns["Double 1"]; column.Header.VisiblePosition = 1; column.MaskInput = "nnn.n"; column.MinValue = 0.0; column.MaxValue = 999.9; EditorWithMask editorWithMask = new EditorWithMask(); editorWithMask.SpinIncrement = 1; editorWithMask.SpinButtonDisplayStyle = SpinButtonDisplayStyle.OnRight; column.Editor = editorWithMask; column.ButtonDisplayStyle = Infragistics.Win.UltraWinGrid.ButtonDisplayStyle.Always;
Mike, I used the Editor as you suggested, but when I clicked the spin button, there is no change to the double and at the same time the spin button is disabled. Please give me some advice.
Thank you very match.
I don't even have v6.2 any more, so I'm not absolutely sure. But I think you cannot use an editor in that case, you will need an Editor Control.
So what you would do is put an UltraMaskedEdit control on the form and set the EditorControl property of the column to that UltraMaskedEditor control.
Then you handle the EditorSpinButtonClick event of the UltraMaskedEdit control.
Here's some sample code. But frankly, this code isn't really that great. I would put the UltraMaskedEdit control on the form and set it's properties in the designer instead of using the InitializeLayout event. It's just cleaner.
private void ultraGrid1_InitializeLayout(object sender, Infragistics.Win.UltraWinGrid.InitializeLayoutEventArgs e) { UltraGridLayout layout = e.Layout; UltraGridBand band = layout.Bands[0]; UltraGridOverride ov = layout.Override; UltraGridColumn column = band.Columns["Double 1"]; column.Header.VisiblePosition = 1; column.MaskInput = "nnn.n"; column.MinValue = 0.0; column.MaxValue = 999.9; UltraMaskedEdit ultraMaskedEdit = new UltraMaskedEdit(); this.Controls.Add(ultraMaskedEdit); ultraMaskedEdit.EditorSpinButtonClick += new Infragistics.Win.UltraWinEditors.SpinButtonClickEventHandler(ultraMaskedEdit_EditorSpinButtonClick); ultraMaskedEdit.ButtonsRight.Add(new SpinEditorButton()); column.EditorControl = ultraMaskedEdit; column.ButtonDisplayStyle = Infragistics.Win.UltraWinGrid.ButtonDisplayStyle.Always; } void ultraMaskedEdit_EditorSpinButtonClick(object sender, Infragistics.Win.UltraWinEditors.SpinButtonClickEventArgs e) { UltraGridCell cell = e.Context as UltraGridCell; switch (e.ButtonType) { case Infragistics.Win.UltraWinEditors.SpinButtonItem.NextItem: cell.Value = (double)cell.Value + 0.1; break; case Infragistics.Win.UltraWinEditors.SpinButtonItem.PreviousItem: cell.Value = (double)cell.Value - 0.1; break; } }
Thank you Mike for your response.
I use Infragistics v6.2, but i not able to upgrade controls. Who is the spin event when i can increment value on 1.0
Please help me.
If the SpinIncrement property does not exist, then you are probably using a very old version of the controls from before that feature was added. The solution would be to update to a new version or handled the spin button events and increment the value yourself.
I try your code but
editorWithMask.SpinIncrement not exist
Pleas help me.