I have created a RadForm in a sample winforms project and dropped a RadPageView control on the form. Then created three pages and dropped a user control on the page 1 and page 2. Now when I navigate to page 3 from page and page 2 then Visual Studio gets not responding and crashes later.
I am recently downloaded the trial version of Telerik Winforms(2024.2.514) and found this issue with User controls. Previous versions also have same issue.
Recording of the issue as well as sample project is attached.
(this.radPageView1.ViewElement as RadPageViewStripElement).AllowEdit = true;
(this.radPageView1.ViewElement as RadPageViewStripElement).NewItemVisibility = StripViewNewItemVisibility.End;
When you have RadPageView within a RadDock only the selected page is visible and its content is shown. When you select another page it is blank.
Workaround:
For Each page As RadPageViewPage In Me.rpvMain.PagesTo reproduce: - Open attached project and add a lot of pages. - Close all pages - The GDI object count increases. Workaround: GC.Collect(); GC.WaitForPendingFinalizers(); GC.WaitForFullGCApproach(); GC.WaitForFullGCComplete(); GC.Collect();
Workaround: this.radPageViewPage1.Item.TextRenderingHint = System.Drawing.Text.TextRenderingHint.AntiAliasGridFit;
To reproduce: please refer to the attached sample project and gif file. The purpose is to select the last added page. However, the multi-line tabs are not ordered correctly at all compared to the TabControl.
To reproduce: use the following code snippet: public RadForm1() { InitializeComponent(); this.radPageView1.Pages.Add(new RadPageViewPage("My page")); RadPageViewStripElement stripElement = this.radPageView1.ViewElement as RadPageViewStripElement; stripElement.StripButtons = StripViewButtons.ItemList; this.radPageView1.ItemListMenuDisplaying += radPageView1_ItemListMenuDisplaying; } private void radPageView1_ItemListMenuDisplaying(object sender, RadPageViewMenuDisplayingEventArgs e) { e.Items.Clear(); RadMenuItem item = new RadMenuItem("aaa"); e.Items.Add(item); } Click the overflow button to open the drop down and select the item. When you open the overflow popup again you will notice that the item is duplicated although you clear the items in the ItemListMenuDisplaying event. Workaround: dispose the item when it is clicked private void radPageView1_ItemListMenuDisplaying(object sender, RadPageViewMenuDisplayingEventArgs e) { e.Items.Clear(); RadMenuItem item = new RadMenuItem("aaa"); item.Click += item_Click; e.Items.Add(item); } private void item_Click(object sender, EventArgs e) { RadMenuItem item = sender as RadMenuItem; if (item != null) { item.Click -= item_Click; item.Dispose(); } }
To reproduce: for (int i = 0; i < 20; i++) { this.radPageView1.Pages.Add(new RadPageViewPage("Page" + i)); } this.radPageView1.ViewMode = PageViewMode.Backstage; Only a few of the pages are visible and the user is not allowed to scroll to see the rest of them. Workaround: 1. Make use of the strip buttons: RadPageViewBackstageElement el = this.radPageView1.ViewElement as RadPageViewBackstageElement; el.ItemContainer.ButtonsPanel.Visibility = ElementVisibility.Visible; 2. Place the control in RadScrollablePanel RadScrollablePanel scrollablePanel = new RadScrollablePanel(); scrollablePanel.Dock = DockStyle.Fill; this.Controls.Add(scrollablePanel); RadPageView pageView = new RadPageView(); pageView.ViewMode = PageViewMode.Backstage; scrollablePanel.Controls.Add(pageView); for (int i = 0; i < 50; i++) { pageView.Pages.Add(new RadPageViewPage("Page " + i.ToString())); } pageView.Size = new System.Drawing.Size(1000,2500);
Workaround: instead of removing and adding the page, modify its Visibility property
To reproduce: - Add PageView to a form and set its Dock property to fill. - Add single page and set its AutoScroll property to true. - Add some controls and make sure that a scrollbar will appear. - Start the application and scroll to the bottom. - Maximize the form. You will notice that the scrollbar position is wrong. Workaround: protected override void WndProc(ref Message m) { if (m.Msg == 0x0112) { if (m.WParam == new IntPtr(0xF030)) { this.radPageView1.SelectedPage.AutoScrollPosition = this.radPageView1.AutoScrollPosition; } } base.WndProc(ref m); }
Workaround: RadPageViewExplorerBarElement exElement = radPageView2.ViewElement as RadPageViewExplorerBarElement; exElement.ItemSize = new Size(200, 100);
To reproduce: 1.Add a RadPageView with several pages. 2.Set the ViewElement.AllowEdit property to true. 3.Use the following code: public Form1() { InitializeComponent(); radPageView1.ViewElement.AllowEdit = true; radPageView1.ViewElement.EditorInitialized += ViewElement_EditorInitialized; } private void ViewElement_EditorInitialized(object sender, RadPageViewEditorEventArgs e) { radPageView1.ViewElement.ActiveEditor.Validating -= ActiveEditor_Validating; radPageView1.ViewElement.ActiveEditor.Validating += ActiveEditor_Validating; radPageView1.ViewElement.ActiveEditor.Validated -= ActiveEditor_Validated; radPageView1.ViewElement.ActiveEditor.Validated += ActiveEditor_Validated; radPageView1.ViewElement.ActiveEditor.ValidationError -= ActiveEditor_ValidationError; radPageView1.ViewElement.ActiveEditor.ValidationError += ActiveEditor_ValidationError; } private void ActiveEditor_Validating(object sender, CancelEventArgs e) { RadPageViewElement.PageViewItemTextEditor editor = sender as RadPageViewElement.PageViewItemTextEditor; if (editor != null && radPageView1.ViewElement.ActiveEditor.Value == string.Empty) { e.Cancel = true; } } private void ActiveEditor_ValidationError(object sender, ValidationErrorEventArgs e) { RadMessageBox.Show("Page label can't be empty!", "Error", MessageBoxButtons.OK, RadMessageIcon.Error); } private void ActiveEditor_Validated(object sender, EventArgs e) { RadMessageBox.Show("Page label has been successfully updated!", "Information", MessageBoxButtons.OK, RadMessageIcon.Info); } If you change a tab title and do not press Enter, but click outside the pageview, the respective events for validation are not fired. Workaround: private void ViewElement_EditorInitialized(object sender, RadPageViewEditorEventArgs e) { RadPageViewElement.PageViewItemTextEditor textEditor = e.ActiveEditor as RadPageViewElement.PageViewItemTextEditor; RadPageViewElement.PageViewItemTextEditorElement element = textEditor.EditorElement as RadPageViewElement.PageViewItemTextEditorElement; element.PropertyChanged += element_PropertyChanged; } private void element_PropertyChanged(object sender, PropertyChangedEventArgs e) { RadPageViewElement.PageViewItemTextEditorElement element = sender as RadPageViewElement.PageViewItemTextEditorElement; if (e.PropertyName == "ContainsFocus"&& !element.ContainsFocus) { radPageView1.ViewElement.ActiveEditor.Validate(); } }
To reproduce: - Add RadPageView with a two pages to a blank form, each page should contain a RadGridView. - Populate the gids with some data. - Start a gotomeeting and show your screen. - Launch the application or start debugging. - Add a column to the first tab page (not sure if the location or placement matters) - Click the tab header for the second tab page to try to navigate to it - Nothing will happen. Workaround: - Change focus to another application. - The test app will now update.
RadPageView - Add support for Kinetic Scrolling.