To reproduce:
1. Add a RadGridView with a GridViewMultiComboBoxColumn. Enable the auto filter functionality for this column and add an appropriate FilterDescriptor to the RadMultiColumnComboBoxElement.
2. Using the keyboard arrows only (no mouse), navigate to the GridViewMultiComboBoxColumn.
3. Type "ba" by using the keyboard. The "b" is lost and only the "a" gets to the filter. I expect the filter to show "ba".
Workaround: use custom row behavior
public Form1()
{
InitializeComponent();
//register the custom row behavior
BaseGridBehavior gridBehavior = radGridView1.GridBehavior as BaseGridBehavior;
gridBehavior.UnregisterBehavior(typeof(GridViewDataRowInfo));
gridBehavior.RegisterBehavior(typeof(GridViewDataRowInfo), new CustomGridDataRowBehavior());
}
public class CustomGridDataRowBehavior : GridDataRowBehavior
{
protected override bool ProcessAlphaNumericKey(KeyPressEventArgs keys)
{
bool result = base.ProcessAlphaNumericKey(keys);
if (this.IsInEditMode &&
(this.BeginEditMode == RadGridViewBeginEditMode.BeginEditOnKeystroke ||
this.BeginEditMode == RadGridViewBeginEditMode.BeginEditOnKeystrokeOrF2))
{
if (this.GridViewElement.ActiveEditor is RadMultiColumnComboBoxElement)
{
this.GridViewElement.ActiveEditor.Value = keys.KeyChar;
if (this.GridViewElement.IsInEditMode)
{
RadMultiColumnComboBoxElement mccb = (RadMultiColumnComboBoxElement)this.GridViewElement.ActiveEditor;
RadTextBoxItem textBoxItem = mccb.TextBoxElement.TextBoxItem;
textBoxItem.Clear();
textBoxItem.Text = keys.KeyChar.ToString();
textBoxItem.SelectionStart = 1;
textBoxItem.SelectionLength = 0;
}
return true;
}
}
return result;
}
}
To reproduce:
CultureInfo culture = new CultureInfo("en-US");
culture.DateTimeFormat.FirstDayOfWeek = DayOfWeek.Monday;
culture.DateTimeFormat.CalendarWeekRule = CalendarWeekRule.FirstFourDayWeek;
this.radCalendar1.ShowRowHeaders = true;
this.radCalendar1.Culture = culture;
On 125% dpi:
However, if you close the list and open it again, the list has the correct height (the gap is gone).
To reproduce: -Set RTL via the insane: RadMessageBox.Instance.RightToLeft = RightToLeft.Yes; - You will notice that layout is not changed when the messagebox is shown. Worlaround: - Use the RadMessageBox show method with the following parameters: RadMessageBox.Show(this, "test", "caption", MessageBoxButtons.OKCancel, icon, MessageBoxDefaultButton.Button1, RightToLeft.Yes);
Workaround:
public class MyInputBehavior : InputBehavior
{
public MyInputBehavior(DocumentView view)
: base(view)
{
}
public override bool ProcessKeyPress(System.Windows.Forms.KeyPressEventArgs e)
{
// TO DO: You code here
e.KeyChar = char.ToUpper(e.KeyChar);
return true;
// By commenting the base call you are supresing the default logic
//return base.ProcessKeyPress(e);
}
}
Then you should replace the default input behavior by using the following code snippet:
this.richTextBox.DocumentView.InputBehavior = new MyInputBehavior(this.richTextBox.DocumentView);
Set one of the monitors to use 125% DPI scaling. Start the attached project on a monitor with 100% DPI scaling - the form is expected to be with size 400,400. Move the form to the monitor with 125% DPI scaling. You are expecting the form's size to be 500,500, but it is 507,521. Please refer to the screenshots.
Workaround:
Override the RadForm.ScaleControl method as follows:
Protected Overrides Sub ScaleControl(factor As SizeF, specified As BoundsSpecified)
Dim initialSize As Size = Me.Size
MyBase.ScaleControl(factor, specified)
Me.Size = TelerikDpiHelper.ScaleSize(initialSize, factor)
End Sub
In this scenario, the RadMap control is placed inside a RadDocking pane. The exception is raised when you click and hold the mouse on a drawn polygon. Then the mouse is released outside of the Form. When closing the tab holding the map, an exception is thrown.
Expose a way to disable the Spell Checking Complete dialog:
I was trying to move the NewRow to the bottom of the RadVirtualGrid. This is also supported by its big brother RadGridView. I have now learned that this is not supported by RadVirtualGrid.
Hereby my request: Please support this!
I've created a Harmony patch (which works for me); it might help you if you decide to support it:
static class MoveNewRowToBottom
{
[HarmonyPatch(typeof(VirtualGridTableElement), "InvalidatePinnedRows")]
static class VirtualGridTableElement_InvalidatePinnedRows
{
static private bool _isInvalidating;
static private bool Prefix(VirtualGridTableElement __instance)
{
if (_isInvalidating)
return false;
_isInvalidating = true;
__instance.ViewElement.TopPinnedRows.DisposeChildren();
__instance.ViewElement.BottomPinnedRows.DisposeChildren();
var viewInfo = __instance.ViewInfo;
var rowsViewState = __instance.RowsViewState;
var topPinnedItems = rowsViewState.TopPinnedItems;
var bottomPinnedItems = rowsViewState.BottomPinnedItems;
if (viewInfo.ShowFilterRow)
if (!topPinnedItems.Contains(RadVirtualGrid.FilterRowIndex) && !bottomPinnedItems.Contains(RadVirtualGrid.FilterRowIndex))
rowsViewState.SetPinPosition(RadVirtualGrid.FilterRowIndex, PinnedRowPosition.Top);
if (viewInfo.ShowNewRow)
if (!topPinnedItems.Contains(RadVirtualGrid.NewRowIndex) && !bottomPinnedItems.Contains(RadVirtualGrid.NewRowIndex))
rowsViewState.SetPinPosition(RadVirtualGrid.NewRowIndex, PinnedRowPosition.Top);
if (viewInfo.ShowHeaderRow)
if (!topPinnedItems.Contains(RadVirtualGrid.HeaderRowIndex) && !bottomPinnedItems.Contains(RadVirtualGrid.HeaderRowIndex))
rowsViewState.SetPinPosition(RadVirtualGrid.HeaderRowIndex, PinnedRowPosition.Top);
var elementProvider = __instance.RowScroller.ElementProvider;
var topPinnedRows = __instance.ViewElement.TopPinnedRows;
foreach (int topPinnedRow in topPinnedItems.SortTopRowIndexes())
{
VirtualGridRowElement pinnedRow = (VirtualGridRowElement)elementProvider.GetElement(topPinnedRow, null);
topPinnedRows.Children.Add(pinnedRow);
pinnedRow.Attach(topPinnedRow, null);
}
var bottomPinnedRows = __instance.ViewElement.BottomPinnedRows;
foreach (int bottomPinnedRow in bottomPinnedItems.SortBottomRowIndexes())
{
VirtualGridRowElement pinnedRow = (VirtualGridRowElement)elementProvider.GetElement(bottomPinnedRow, null);
bottomPinnedRows.Children.Add(pinnedRow);
pinnedRow.Attach(bottomPinnedRow, null);
}
_isInvalidating = false;
return false;
}
}
static private IEnumerable<int> SortTopRowIndexes(this ReadOnlyCollection<int> topRowIndexes)
{
var specialRowIndex = topRowIndexes.Where(index => index < 0).ToList();
if (specialRowIndex.Contains(RadVirtualGrid.HeaderRowIndex))
yield return RadVirtualGrid.HeaderRowIndex;
if (specialRowIndex.Contains(RadVirtualGrid.NewRowIndex))
yield return RadVirtualGrid.NewRowIndex;
if (specialRowIndex.Contains(RadVirtualGrid.FilterRowIndex))
yield return RadVirtualGrid.FilterRowIndex;
foreach (var index in topRowIndexes.Where(index => index >= 0))
yield return index;
}
static private IEnumerable<int> SortBottomRowIndexes(this ReadOnlyCollection<int> bottomRowIndexes)
{
foreach (var index in bottomRowIndexes.Where(index => index >= 0))
yield return index;
var specialRowIndex = bottomRowIndexes.Where(index => index < 0).ToList();
if (specialRowIndex.Contains(RadVirtualGrid.FilterRowIndex))
yield return RadVirtualGrid.FilterRowIndex;
if (specialRowIndex.Contains(RadVirtualGrid.NewRowIndex))
yield return RadVirtualGrid.NewRowIndex;
if (specialRowIndex.Contains(RadVirtualGrid.HeaderRowIndex))
yield return RadVirtualGrid.HeaderRowIndex;
}
}
Hi,
when I select the column chooser multiple times via context menu, the column chooser dialog scales multiple times.
Reproduced here with the Telerik sample application. 150 % dpi scaling.
Regards
Erwin
In the ControlDefault theme, editor cell text is misaligned while editing a cell.
How to reproduce: 1. Run the Mail Merge example (QSF) 2. Select the image inside the document and move it to another position
The specified format in the DisplayFormat attribute should be considered when automatically generating the GridViewDateTimeColumn.
public RadForm1()
{
InitializeComponent();
List<Item> items = new List<Item>();
for (int i = 0; i < 5; i++)
{
items.Add(new Item(DateTime.Now.AddDays(i)));
}
this.radGridView1.DataSource = items;
this.radGridView1.AutoSizeColumnsMode = Telerik.WinControls.UI.GridViewAutoSizeColumnsMode.Fill;
}
public class Item
{
[System.ComponentModel.DisplayName("My Date")]
[System.ComponentModel.DataAnnotations.DisplayFormat(DataFormatString = "{0:MM/dd/yyyy}")]
public DateTime Date { get; set; }
public Item(DateTime date)
{
this.Date = date;
}
}
This item is migrated to the Telerik Document Processing portal: http://feedback.telerik.com/Project/184/Feedback/Details/190130 Please use the new item for commenting, voting and subscribing instead of this one.