Telerik Forums
UI for WinForms Forum
1 answer
87 views
hi,
i have an application where i am creating gridviews at run time. at a given time, the application can have 1 or x number of girdviews, each being hooked with the UserAddedRow event:
void myGrid_UserAddedRow(object sender, GridViewRowEventArgs e) { }

how can i, using the "sender" or the "e" parementers of the event handler get a reference to the associated GridView? the sender here is a Telerik.WinControls.UI.GridViewTemplate for which i am not able to find a property which would return the GridView object.

thanks.
Jack
Telerik team
 answered on 11 Jan 2013
3 answers
58 views
Why would dragging an appointment in Month-View reset the times for the Appointment

While dragging the appointment in the Week-view or the Day-view does not change the times 

How would I resolve this?
Ivan Todorov
Telerik team
 answered on 11 Jan 2013
2 answers
117 views
Hi Telerik Team,

We are using the Conditional formatting dialog of RadGridView.
Our application is in German, I have localized the dialog. In the dialog, there are three strings, which can not be localizes with the LocalizationProvider. I marked them in the attached image. Is it possible, to change these strings? The most important one is the text "Sort columns alphabetically".

Thank you for help,
Li
Li
Top achievements
Rank 1
 answered on 11 Jan 2013
2 answers
221 views
i have a raddock with 2 areas, the top is a doc manager and the bottom is a tool window.
i have the tool window buttons set to only autohide.  when the user auto hides though, i want it to stay open to a certain size.  (say 300 px tall) instead of collapsing.  this would let them still see and edit stuff on the tool window.  when they open and pin it, it should be bigger (say 700 px etc).  so it's not really collapsing, just being made smaller.  is there a way to do this with the tool window or something similar?

thanks!
John
Top achievements
Rank 1
 answered on 10 Jan 2013
3 answers
654 views
Hello Team,
I have a requirement in the gridview, in such a way that it should allow me to add additional menu items to the exiting context menu of column header, my gridview contains  columns like Depth, Densities with corresponding Unit of measurements meters (m) and Specific gravity (sg), i should allow user to convert the Unit of measurement of Depth column to feet from meters,
For this i want to add some menu items to the existing context menu of column header, and then multiply entire column with scaling factor 3.8 so that it converts from meters to feet.

Can you help me out how to add context menu items to the existing ???
Plamen
Telerik team
 answered on 10 Jan 2013
1 answer
252 views
Hello Team,
i have a grid with 6 different columns each should be saved in different database tables. my grid is having more than 30,000 records
is there any way to take gridview column data into temperory table and from there to insert into database tables
and  row level data saving is fine since it is single line update into database, where as  updating entire grid with 30,000 records, taking time to save

please suggest me
Plamen
Telerik team
 answered on 10 Jan 2013
7 answers
246 views
Hi,

I have a hierarchical grid with custom multi select behavior.
I recently upgraded to Q3 2012. Now I get an exception when I try to select multiple rows that have childrows with the mouse.
This is the exception:
System.ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection.
Parameter name: index
   at System.ThrowHelper.ThrowArgumentOutOfRangeException()
   at System.Collections.Generic.List`1.get_Item(Int32 index)
   at System.Collections.ObjectModel.Collection`1.get_Item(Int32 index)
   at Telerik.WinControls.UI.GridRowBehavior.DoMultiFullRowSelect(Boolean shift, Boolean control)
   at Telerik.WinControls.UI.GridRowBehavior.DoMouseSelection(GridCellElement currentCell, Point currentLocation)
   at Telerik.WinControls.UI.GridRowBehavior.ProcessMouseSelection(Point mousePosition, GridCellElement currentCell)
   at Telerik.WinControls.UI.GridRowBehavior.OnMouseMove(MouseEventArgs e)
   at Telerik.WinControls.UI.BaseGridBehavior.OnMouseMove(MouseEventArgs e)
   at Telerik.WinControls.UI.RadGridView.OnMouseMove(MouseEventArgs e)
   at System.Windows.Forms.Control.WmMouseMove(Message& m)
   at System.Windows.Forms.Control.WndProc(Message& m)
   at System.Windows.Forms.ScrollableControl.WndProc(Message& m)
   at Telerik.WinControls.RadControl.WndProc(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
   at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
----------------------------------------

I made a test application that reproduces the problem.
The application contains 2 files:
  • Form1.cs
  • CustomRowInfos.cs

Form1.cs:

using System;
using System.Collections.Generic;
using System.Windows.Forms;
using Telerik.WinControls.UI;
 
namespace GridWithIndexedHierarchySpike
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            dummyGridView.Dock = DockStyle.Fill;
            dummyGridView.Parent = this;
            dummyGridView.BringToFront();
            dummyGridView.MultiSelect = true;
            dummyGridView.UseScrollbarsInHierarchy = true;
        }
 
        protected override void OnLoad(EventArgs e)
        {
            base.OnLoad(e);
 
            GridViewTemplate childTemplate = CreateChildTemplate();
            dummyGridView.Templates.Add(childTemplate);
            childTemplate.HierarchyDataProvider = new GridViewEventDataProvider(childTemplate);
 
            //grid events
            dummyGridView.RowSourceNeeded += gridView_RowSourceNeeded;
            dummyGridView.CreateRowInfo += CreateGridViewHierarchyRowInfoWithCustomSelectBehavior;
            dummyGridView.Templates[0].CreateRowInfo += CreateGridViewDataRowInfoWhitCustomSelectBehavior;
 
            //databind
            dummyGridView.DataSource = CreateDummyData(5);
        }
  
        void gridView_RowSourceNeeded(object sender, GridViewRowSourceNeededEventArgs e)
        {
            List<SomeData> data = CreateDummyData(2);
            foreach (SomeData someData in data)
            {
                GridViewRowInfo row = e.Template.Rows.NewRow();
                row.Cells[0].Value = someData.Name;
                row.Cells[1].Value = someData.SomeDataId;
                row.Cells[2].Value = someData.ParentDataId;
  
                e.SourceCollection.Add(row);
            }
        }
 
        private static void CreateGridViewHierarchyRowInfoWithCustomSelectBehavior(object sender, GridViewCreateRowInfoEventArgs e)
        {
            if (e.RowInfo is GridViewHierarchyRowInfo)
            {
                e.RowInfo = new MultiSelectGridViewHierarchyRowInfo(e.ViewInfo);
            }
        }
 
        private static void CreateGridViewDataRowInfoWhitCustomSelectBehavior(object sender, GridViewCreateRowInfoEventArgs e)
        {
            if (e.RowInfo is GridViewDataRowInfo)
            {
                e.RowInfo = new MultiSelectGridViewDataRowInfo(e.ViewInfo);
            }
        }
 
        private GridViewTemplate CreateChildTemplate()
        {
            var template = new GridViewTemplate {AutoSizeColumnsMode = GridViewAutoSizeColumnsMode.Fill};
            var namecolumn = new GridViewTextBoxColumn("Name");
            var idColumn = new GridViewTextBoxColumn("ID");
            var parentColumn = new GridViewTextBoxColumn("Parent");
            template.Columns.AddRange(namecolumn, idColumn, parentColumn);
            return template;
        }
  
        private static List<SomeData> CreateDummyData(int nbrRows)
        {
            var data = new List<SomeData>();
            var someData = new SomeData { Name = Guid.NewGuid().ToString(), ParentDataId = null, SomeDataId = 0 };
  
            data.Add(someData);
            for (int i = 1; i <= nbrRows - 1; i++)
            {
                var someChildData = new SomeData()
                {
                    Name = Guid.NewGuid().ToString(),
                    ParentDataId = someData.SomeDataId,
                    SomeDataId = i
                };
                data.Add(someChildData);
            }
  
            return data;
        }
 
        public class SomeData
        {
            public int SomeDataId { get; set; }
            public int? ParentDataId { get; set; }
            public string Name { get; set; }
        }
    }
}

CustomRowInfos.cs:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Telerik.WinControls.UI;
 
namespace GridWithIndexedHierarchySpike
{
    /// <summary>
    /// Hierarchy row with custom select behavior.
    /// When the row is (de)selected, all child rows are (de)selected
    /// </summary>
    public class MultiSelectGridViewHierarchyRowInfo : GridViewHierarchyRowInfo
    {
        public static bool ParentSilentUpdate;
        public static bool OverrideChildSelection;
 
        public MultiSelectGridViewHierarchyRowInfo(GridViewInfo owner)
            : base(owner)
        {
            ParentSilentUpdate = false;
        }
 
        protected override bool SetBooleanProperty(string propertyName, int propertyKey, bool value)
        {
            bool result = base.SetBooleanProperty(propertyName, propertyKey, value);
 
            if (result && propertyName == "IsSelected")
            {
                if (!MultiSelectGridViewDataRowInfo.ChildSilentUpdate)
                {
                    //parent row is selected/deselected;
                    SelectChildRows(value);
                }
            }
 
            return result;
        }
 
 
        private void SelectChildRows(bool isSelected)
        {
            if (OverrideChildSelection) return;
 
            ParentSilentUpdate = true;
            foreach (MultiSelectGridViewDataRowInfo row in this.ChildRows)
            {
                row.IsSelected = isSelected;
            }
            ParentSilentUpdate = false;
        }
    }
 
    /// <summary>
    /// Data row with custom select behavior.
    /// If the row is a child row of a parent row then
    /// the parent row is selected when the child rows (or one of its siblings) is selected,
    /// otherwise the parent row is deselected.
    /// </summary>
    public class MultiSelectGridViewDataRowInfo : GridViewDataRowInfo
    {
        public static bool ChildSilentUpdate;
        public MultiSelectGridViewDataRowInfo(GridViewInfo viewInfo)
            : base(viewInfo)
        {
            ChildSilentUpdate = false;
        }
 
        public object OriginalBoundItem { get; set; }
 
        protected override bool SetBooleanProperty(string propertyName, int propertyKey, bool value)
        {
           
            bool result = base.SetBooleanProperty(propertyName, propertyKey, value);
 
            if (result && propertyName == "IsSelected")
            {
                if (!MultiSelectGridViewHierarchyRowInfo.ParentSilentUpdate)
                {
                    //child row is selected
                    SelectParentRow(value);
                }
            }
 
            return result;        
        }
 
        private void SelectParentRow(bool isSelected)
        {
            var parent = Parent as MultiSelectGridViewHierarchyRowInfo;
            if (parent == null) return;
 
            ChildSilentUpdate = true;
            if (isSelected)
            {
                parent.IsSelected = true;
            }
            else
            {
                //check if there are other rows
                bool selected = GetParentRowSelection(parent);
                parent.IsSelected = selected;
            }
            ChildSilentUpdate = false;
        }
 
        private bool GetParentRowSelection(MultiSelectGridViewHierarchyRowInfo parent)
        {
            //if there is one selected child row, return true
            return parent.ChildRows.Cast<MultiSelectGridViewDataRowInfo>().Any(row => row != this && row.IsSelected);
        }
    }
}

Jack
Telerik team
 answered on 10 Jan 2013
3 answers
186 views
Hi all,
Ive read on the forums that if I dont want the first row in my gridview to be selected whenever I bind to a datasource, i could set the "CurrentRow" to nothing.

I use version: 2012.3.1211.20

When I try this however, I get an "Index was out of range. Must be non-negative and less than the size of the collection"

I have binded my grid to a list of my custom object.
Then ive tried the following:

gridview1.CurrentRow = nothing
and
gridview1.ClearSelection()

Both commands result in the "Index out of range"

Anybody else experienced the same problem?

Thanks.




Plamen
Telerik team
 answered on 10 Jan 2013
1 answer
115 views
I have a combobox which is bound to a list of DictionaryEntries. And I would like that when the form is shown no item is selected (SelectedItem = null).

Test program
public partial class Form1 : Form
  {
    public Form1()
    {
      InitializeComponent();
      Bind(GetList());
      Print("Before show");
    }
 
    public void Bind(
      List<DictionaryEntry> p_List)
    {
      radDropDownList1.ValueMember = "Key";
      radDropDownList1.DisplayMember = "Value";
      radDropDownList1.DataSource = p_List;
      radDropDownList1.SelectedIndex = -1;
      radDropDownList1.SelectedItem = null;
      radDropDownList1.SelectedValue = null;
    }
 
    private List<DictionaryEntry> GetList()
    {
      return new List<DictionaryEntry>
               {
                 new DictionaryEntry(0, "Entry 0"),
                 new DictionaryEntry(1, "Entry 1")
               };
    }
 
    private void button1_Click(object sender, EventArgs e)
    {
      Bind(GetList());
      Print("rebind");
    }
 
    private void Print(string p_Message)
    {
      richTextBox1.AppendText(String.Format("{2}\nSelectedIndex = {0}\nSelectedValue = {1}\n\n",
                                        radDropDownList1.SelectedIndex, radDropDownList1.SelectedValue, p_Message));
    }
     
    private void Form1_Shown(object sender, EventArgs e)
    {
      Print("OnShow");
    }
 
    private void button2_Click(object sender, EventArgs e)
    {
      Print("Print state");
    }
  }

The problem is that when the form is shown DropDownList automatically selects first element in the list (SelectedIndex, SelectedItem,.. are updated but Text is not).
If I rebind after the form is shown DropDownList works correctly.

Can I bind a list in a way that Form.Show will not select the first element in the list (SelectedItem = null)?
Peter
Telerik team
 answered on 10 Jan 2013
4 answers
172 views
Would it be possible to get a code sample in C# of adding an exception with visible set to false to a recurring appointment?  I can't seem to get it to work in my project and I can't find any clear cut examples anywhere.

Thanks,
Matt
Ivan Todorov
Telerik team
 answered on 10 Jan 2013
Narrow your results
Selected tags
Tags
GridView
General Discussions
Scheduler and Reminder
Treeview
Dock
RibbonBar
Themes and Visual Style Builder
ChartView
Calendar, DateTimePicker, TimePicker and Clock
DropDownList
Buttons, RadioButton, CheckBox, etc
ListView
ComboBox and ListBox (obsolete as of Q2 2010)
Chart (obsolete as of Q1 2013)
Form
PageView
MultiColumn ComboBox
TextBox
RichTextEditor
PropertyGrid
Menu
RichTextBox (obsolete as of Q3 2014 SP1)
Panelbar (obsolete as of Q2 2010)
PivotGrid and PivotFieldList
Tabstrip (obsolete as of Q2 2010)
MaskedEditBox
CommandBar
PdfViewer and PdfViewerNavigator
ListControl
Carousel
Diagram, DiagramRibbonBar, DiagramToolBox
GanttView
Panorama
New Product Suggestions
Toolstrip (obsolete as of Q3 2010)
VirtualGrid
AutoCompleteBox
Label
Spreadsheet
ContextMenu
Panel
Visual Studio Extensions
TitleBar
Documentation
SplitContainer
Map
DesktopAlert
CheckedDropDownList
ProgressBar
TrackBar
MessageBox
Rotator
SpinEditor
StatusStrip
CheckedListBox
LayoutControl
SyntaxEditor
Wizard
ShapedForm
TextBoxControl
Conversational UI, Chat
DateTimePicker
CollapsiblePanel
TabbedForm
CAB Enabling Kit
GroupBox
DataEntry
ScrollablePanel
ScrollBar
WaitingBar
ImageEditor
Tools - VSB, Control Spy, Shape Editor
BrowseEditor
DataFilter
ColorDialog
FileDialogs
Gauges (RadialGauge, LinearGauge, BulletGraph)
ApplicationMenu
RangeSelector
CardView
WebCam
BindingNavigator
PopupEditor
RibbonForm
Styling
TaskBoard
Barcode
Callout
ColorBox
PictureBox
FilterView
Accessibility
NavigationView
VirtualKeyboard
DataLayout
ToastNotificationManager
ValidationProvider
CalculatorDropDown
Localization
TimePicker
ButtonTextBox
FontDropDownList
Licensing
BarcodeView
BreadCrumb
Security
LocalizationProvider
Dictionary
Overlay
Flyout
Separator
SparkLine
TreeMap
StepProgressBar
SplashScreen
ToolbarForm
NotifyIcon
DateOnlyPicker
Rating
TimeSpanPicker
Calculator
OfficeNavigationBar
TaskbarButton
HeatMap
SlideView
PipsPager
AIPrompt
TaskDialog
TimeOnlyPicker
+? more
Top users last month
Will
Top achievements
Rank 2
Iron
Motti
Top achievements
Rank 1
Iron
Hester
Top achievements
Rank 1
Iron
Bob
Top achievements
Rank 3
Iron
Iron
Veteran
Thomas
Top achievements
Rank 2
Iron
Want to show your ninja superpower to fellow developers?
Top users last month
Will
Top achievements
Rank 2
Iron
Motti
Top achievements
Rank 1
Iron
Hester
Top achievements
Rank 1
Iron
Bob
Top achievements
Rank 3
Iron
Iron
Veteran
Thomas
Top achievements
Rank 2
Iron
Want to show your ninja superpower to fellow developers?
Want to show your ninja superpower to fellow developers?