Hi,
How can I disable the pinch gesture (aka two finger zoom in or out) which is changing the row height (undesired). For fixing the row height, I have set AllowRowResize = false. With the gesture, the row height can still be made very small or very large with this set to false. This is for version 2014.3.1202.40 of the GridView.
Thanks!
Alan
I'm testing gridview and add cell values manually without using any datasource.
I'd like to show navigator control for the rows of gridview.
Is there any way to do so?
Hi,
I am overriding ProcessCmdKey to detect when a user press a combination of keys to scroll up and down in the pdfViewer. I'm currently using .PageUp() and .PageDown(), but of course that goes up and down whole pages.
I understand that pdfViewer already has shortcuts using the arrow keys, but that requires that the pdfViewer control be in focus. For our purposes, the user prefers to not lose focus on whatever control they are using, for example, typing in data from the pdf without losing focus of the textbox.
Is there any way that I can use the native function of the Up and Down keys with pdfViewer without requiring that the pdfViewer control be in focus? If I cannot do so, how may I replicate scrolling behavior with my own chosen shortcuts?
private void ScrollPDFViewer(Keys keyData)
{
if (keyData == (Keys.Up | Keys.Control))
{
this.radPdfViewer.PageUp();
// this.radPdfViewer.PdfViewerElement.Scroller.UpdateScrollValue();
}
else if (keyData == (Keys.Down | Keys.Control))
{
this.radPdfViewer.PageDown();
}
}
I have a RadGridView with EnableGrouping = True and AutoSize = true. When I drag a column to group by it I get an "Exception Unhandled" error in my Program.Cs file;
System.Reflection.TargetInvocationException
HResult=0x80131604
Message=Exception has been thrown by the target of an invocation.
Source=mscorlib
StackTrace:
at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor)
at System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments)
at System.Delegate.DynamicInvokeImpl(Object[] args)
at System.Windows.Forms.Control.InvokeMarshaledCallbackDo(ThreadMethodEntry tme)
at System.Windows.Forms.Control.InvokeMarshaledCallbackHelper(Object obj)
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Windows.Forms.Control.InvokeMarshaledCallback(ThreadMethodEntry tme)
at System.Windows.Forms.Control.InvokeMarshaledCallbacks()
at System.Windows.Forms.Control.WndProc(Message& m)
at Telerik.WinControls.RadControl.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
at System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg)
at System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(IntPtr dwComponentID, Int32 reason, Int32 pvLoopData)
at System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
at System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
at TDT.Program.Main() in C:\Users\0123456789\Documents\Visual Studio Projects\TDT\TDT\Program.cs:line 19
Inner Exception 1:
InvalidOperationException: MeasureOverride returned positive infinity: Telerik.WinControls.UI.GroupPanelElement
Any suggestions for a workaround?
Hi.
I'm facing and issue with displaying hierarchical data (self-referencing) in grid when missing parent items in data source - only part of data is displayed.
1. Add grid to form
1.
var grid =
new
RadGridView {Dock = DockStyle.Fill};
2.
this
.Controls.Add(grid);
3.
grid.Columns.Add(
"cName"
,
"Name"
,
"Name"
);
//Dummy column displaying Name
2. Setup self-referencing
1.
var col1 =
new
GridViewTextBoxColumn(
"hiddenColumnId"
,
"Id"
);
2.
var col2 =
new
GridViewTextBoxColumn(
"hiddenColumnParentId"
,
"ParentId"
);
3.
grid.MasterTemplate.Columns.Add(col1);
4.
grid.MasterTemplate.Columns.Add(col2);
5.
grid.Columns[
"hiddenColumnId"
].IsVisible =
false
;
6.
grid.Columns[
"hiddenColumnParentId"
].IsVisible =
false
;
7.
grid.Relations.AddSelfReference(grid.MasterTemplate,
"hiddenColumnId"
,
"hiddenColumnParentId"
);
3. Create dummy data type
01.
class
Item
02.
{
03.
public
Item(
int
id,
string
name,
int
? parentId =
null
)
04.
{
05.
Id = id;
06.
Name = name;
07.
ParentId = parentId;
08.
}
09.
10.
public
int
Id {
get
;
set
; }
11.
public
string
Name {
get
;
set
; }
12.
public
int
? ParentId {
get
;
set
; }
13.
}
4. Add new data source
01.
var items =
new
List<Item>
02.
{
03.
new
Item(1,
"1"
),
04.
new
Item(2,
"1.1"
,1),
05.
new
Item(3,
"1.2"
,1),
06.
new
Item(7,
"1.2.1"
,3),
07.
new
Item(4,
"2"
),
08.
new
Item(5,
"2.1"
,4),
09.
new
Item(6,
"2.2"
,4)
10.
};
11.
grid.DataSource = items;
And as expected a correct tree structure is displayed
1.
1
2.
-1.1
3.
-1.2
4.
--1.2.1
5.
2
6.
-2.1
7.
-2.2
However in my case due to busines logic I have only a subset of data - all except item "1" and "2".
Instead of ex
1.
1.1
2.
1.2
3.
-1.2.1
4.
2.1
5.
2.2
I can see only children of first missing parent item. Although the number of rows is matching correct total number of item to be displayed (5) only part of items are visible (3).
1.
1.1
2.
1.2
3.
-1.2.1
As a workaroud I can modify data source and remove parent assignement from objects if parent is missing in data source either on data preparation or DataBindingComplete event.
01.
private
void
Grid_DataBindingComplete(
object
sender, GridViewBindingCompleteEventArgs e)
02.
{
03.
var grid = sender
as
RadGridView;
04.
05.
// Get existing items
06.
var ids =
new
List<
object
>();
07.
foreach
(var id
in
grid.Columns[
"hiddenColumnId"
].DistinctValues)
08.
{
09.
ids.Add(id);
10.
}
11.
12.
// Remove missing parents
13.
foreach
(var row
in
grid.Rows)
14.
{
15.
var parentId = row.Cells[
"hiddenColumnParentId"
].Value;
16.
if
(!ids.Contains(parentId))
17.
row.Cells[
"hiddenColumnParentId"
].Value =
null
;
18.
}
19.
}
However this solution is not suitable, because it is modifying data providing inconsistant state - using that data in code I may falsly assume that the item does not have a parent while it has.
Any ideas how to solve this issue?
Regargs
Greg
Hello,
In the chart legend, I would like to show a line next to an item instead of a square. For the ChartView for Winforms I have been unable to find any information on the ability to change the shape. Is that possible?
As I work around, I had an idea to set the top and bottom border as white and increase the border size thinking that I could make the square look like a line I tried that with the following code, but it seems to have no affect. The default black border is sown instead.
LegendItem item = new LegendItem();
item.Element.BackColor = Color.Blue;
item.Element.BorderBottomColor = Color.White;
item.Element.BorderTopColor = Color.White;
item.Element.BorderTopWidth = 3;
item.Element.BorderBottomWidth = 3;
this.mainChart.ChartElement.LegendElement.Items.Add(item);
I am able to change the entire border using the following code. It displays a smaller square, which is kind of acceptable but there seems to be a shadow still visible.
LegendItem item = new LegendItem();
item.Element.BackColor = Color.Blue;
item.Element.BorderColor = Color.White;
item.Element.BorderWidth = 3;
this.mainChart.ChartElement.LegendElement.Items.Add(item);
Any ideas on how to achieve my goal?
Chris
Hi,
I'm working with the RadGridView component directly without use a model binding.
I would like to add dynamically a new Row at a position in my grid view after an other row by using :
gridView.Rows.Insert(row.Index + 1, newRow);
It's working well if I'm not using a grouping. But when I add the grouping :
GroupDescriptor descriptor =
new
GroupDescriptor();
descriptor.GroupNames.Add(
"NomGroupe"
, ListSortDirection.Ascending);
gridView.GroupDescriptors.Add(descriptor);
It's not work because the Index is ordered by the groupe.
How How can I do?
Thanks for your help,
Simon
Hi everybody, I'm evaluating RadBarcode for printing barcodes in thermal printers. My printers have a resolution of 203 dpi in both horizontal and vertical directions. I'm trying to generate an image of the barcode (EAN13) and sending to printer:
public DrawBarcode(Point Location, Size Size, string valor): base(Location)
{
this.Valor = valor;
bc = new RadBarcode();
bc.Value = valor;
var EAN13 = new Telerik.WinControls.UI.Barcode.Symbology.EAN13();
EAN13.ShowText = true;
bc.Symbology = EAN13;
EAN13.Stretch = true;
int n = 50;
while (true)
{
try
{
img = bc.ExportToImage(2*n, n);
this.size = img.Size;
return;
}
catch (Exception) { n += 10; }
}
}
public override void Draw(Graphics g)
{
base.Draw(g);
g.DrawImage(img, 0, 0);
}
I have a base class for controling Drag, zoom and rotation but it is not important in this scenario. When I send the image to screen, text is rendered perfectly but when I send the image to the printer, text is not redeable. Is it any why to specify resolution in ExortToImage or any other why to change generated image resolution?