Custom Controls Properties - C# , Forms - :(

Posted by user353600 on Stack Overflow See other posts from Stack Overflow or by user353600
Published on 2010-05-29T13:39:37Z Indexed on 2010/05/29 13:42 UTC
Read the original article Hit count: 230

Filed under:
|
|
|

Hi I m adding custom control to my flowlayoutpanel , its a sort of forex data , refresh every second ,

so on each timer tick , i m adding a control , changing controls button text , then adding it to flowlayout panel ,

i m doing it at each 100ms timer tick ,

it takeing tooo much CPU ,

here is my custom Control .

 public partial class UserControl1 : UserControl
{
    public UserControl1()
    {
        InitializeComponent();
    }

    private void UserControl1_Load(object sender, EventArgs e)
    {

    }



    public void displaydata(string name , string back3price , string back3 , string back2price , string back2 , string back1price , string back1 , string lay3price , string lay3 , string lay2price , string lay2 , string lay1price , string lay1  )
    {

        lblrunnerName.Text = name.ToString();

        btnback3.Text = back3.ToString() + "\n" + back3price.ToString();
        btnback2.Text = back2.ToString() + "\n" + back2price.ToString();
        btnback1.Text = back1.ToString() + "\n" + back1price.ToString();




        btnlay1.Text = lay1.ToString() + "\n" + lay1price.ToString();
        btnlay2.Text = lay2.ToString() + "\n" + lay2price.ToString();
        btnlay3.Text = lay3.ToString() + "\n" + lay3price.ToString();

    }

and here is how i m adding control;

 private void timer1_Tick(object sender, EventArgs e)
    {








            localhost.marketData[] md;

            md = ser.getM1();

            flowLayoutPanel1.Controls.Clear();

            foreach (localhost.marketData item in md)
            {

                UserControl1 ur = new UserControl1();

                ur.Name = item.runnerName + item.runnerID;

                ur.displaydata(item.runnerName, item.back3price, item.back3, item.back2price, item.back2, item.back1price, item.back1, item.lay3price, item.lay3, item.lay2price, item.lay2, item.lay1price, item.lay1);

                flowLayoutPanel1.SuspendLayout();
                flowLayoutPanel1.Controls.Add(ur);
                flowLayoutPanel1.ResumeLayout();
            }


        }

now its happing on 10 times on each send , taking 60% of my Core2Duo cpu .

is there any other way , i can just add contols first time , and then change the text of cutom controls buttons on runtime on each refresh or timer tick

i m using c# .Net

© Stack Overflow or respective owner

Related posts about c#

Related posts about winforms