Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 9239943
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: June 18, 20262026-06-18T08:06:16+00:00 2026-06-18T08:06:16+00:00

Are there any ways to improve performance when constructing several forms with large numbers

  • 0

Are there any ways to improve performance when constructing several forms with large numbers of controls (500+)?

Our controls are laid out in a label + 6 text box per row configuration, as shown below:

Image

We have used the following containers to structure our controls:

  • DevExpress’ XtraLayoutControl
  • Panels around each row and moving manually
  • Common table control

We can’t use a grid as the text boxes have to be hidden on a case-by-case basis and our forms have to look fairly close to the printouts. Also, each row has it’s own data type, so we need to add validation and editors for each.

The table control is the most performant, where each form takes around 2 seconds to load.

As each of these will represent a document in our software and we allow users to open multiple documents at once, we are trying to find a way to improve the performance.

One suggestion was to cache the actual form and have a state object that stores the data. However, we allow the user to see more than one document at once.

Another suggestion was to load the document in parts and show each part as it becomes loaded. This isn’t ideal as we are known for having a document that looks almost exactly like the printout.

Are there any other strategies available, or should we just bight the bullet at tell our customers that this program will be slower than it’s VB6 predecessor?

An example of the form design we’re redeveloping is here: Link

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-06-18T08:06:17+00:00Added an answer on June 18, 2026 at 8:06 am

    Complex datatype handling and stuff is to you, this is a 5 minute before-lunch sample to show how much winforms sucks and how much WPF rules:

    namespace WpfApplication5
    {
    
    public partial class MainWindow : Window
    {
        private List<Item> _items;
        public List<Item> Items
        {
            get { return _items ?? (_items = new List<Item>()); }
        }
    
        public MainWindow()
        {
            InitializeComponent();
    
            Items.Add(new Item() {Description = "Base metal Thickness"});
    
            for (var i = 32; i > 0; i--)
            {
                Items.Add(new Item() {Description = "Metal Specification " + i.ToString()});
            }
    
            Items.Add(new Item() { Description = "Base metal specification" });
    
            DataContext = this;
        }
    }
    
    public class Item: INotifyPropertyChanged
    {
        private List<string> _values;
        public List<string> Values
        {
            get { return _values ?? (_values = new List<string>()); }
        }
    
        public event PropertyChangedEventHandler PropertyChanged;
    
        public string Description { get; set; }
    
        protected virtual void OnPropertyChanged(string propertyName)
        {
            var handler = PropertyChanged;
            if (handler != null) 
                handler(this, new PropertyChangedEventArgs(propertyName));
        }
    
        public Item()
        {
            Values.Add("Value1");
            Values.Add("Value2");
            Values.Add("Value3");
            Values.Add("Value4");
            Values.Add("Value5");
            Values.Add("Value6");
        }
    }
    }
    

    XAML:

    <Window x:Class="WpfApplication5.MainWindow"
            xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
            xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
            Title="MainWindow" Height="350" Width="525">
        <ItemsControl ItemsSource="{Binding Items}">
            <ItemsControl.ItemTemplate>
                <DataTemplate>
                    <StackPanel Orientation="Horizontal">
                        <TextBlock Text="{Binding Description}" Width="130"/>
                        <ItemsControl ItemsSource="{Binding Values}">
                            <ItemsControl.ItemsPanel>
                                <ItemsPanelTemplate>
                                    <StackPanel Orientation="Horizontal"/>
                                </ItemsPanelTemplate>
                            </ItemsControl.ItemsPanel>
                            <ItemsControl.ItemTemplate>
                                <DataTemplate>
                                    <TextBox Text="{Binding Path=.}" Margin="2" Width="90"/>
                                </DataTemplate>
                            </ItemsControl.ItemTemplate>
                        </ItemsControl>
                    </StackPanel>
                </DataTemplate>
            </ItemsControl.ItemTemplate>
        </ItemsControl>
    </Window>
    

    I see that you have several other requirements here, such as hiding texboxes and stuff. It doesn’t matter if these rows are a different data type, you just need to do a ViewModel (which in this case would be my public class Item, which hold the data you want to show in the screen, and let the user be able to interact with.

    For example, you could replace the List<string> inside the Item class with something more complex, and add some properties like public bool IsVisible {get;set;} and so on.

    I strongly suggest you take a look at WPF (at least for this screen in particular).

    Copy and paste my code in a new -> WPF project and you can see the results for yourself.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

Been wondering are there any ways to measure the learning performance of ANNs. Thanks
Are there any ways to determine what the differences in databases are that affect
Is there any ways to create my own audio file format? I'm planning to
Is there any ways to try to guess encryption algorithm used to encrypt the
Are there any ways to make javac use an existing OSGi-environment for the resolution
Are there any ways to mock a WCF client proxy using Rhino mocks framework
Are there any ways to cache secured data at client side such that it
Is there any ways to do strings concatination in a `build.xml file? Concretely, suppose
Right now I currently using transactional replication with updatable subscription. Is there any ways
There is any ways to listing all main directories present in php server(may it

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.