1

I have two GridListControl Window having 5 rows and 3 columns each and I have puted some hardcoded value within each cell, But I want to update it dynamically in each cell by using Random and Timer. I go through from Here: but did not cleared my concept.

How to Integrate Random and Timer with my code?

Kindly help.

Part of my code is below:

namespace First_Form_Demo
{
public partial class Form1 : Form
{
    List<Tuple<int, int, double>> list_Tuple_BuySideDepth = null;
    List<Tuple<double, int, int>> list_Tuple_BuySideDepth1 = null;
    public Form1()
    {
        InitializeComponent();
        Init();
    }

    private void Init()
    {
    // For GridListControl1.
            list_Tuple_BuySideDepth = new List<Tuple<int, int, double>>();
            list_Tuple_BuySideDepth.Add(new Tuple<int, int, double>(3, 451, 67.0050));
            list_Tuple_BuySideDepth.Add(new Tuple<int, int, double>(9, 655, 67.0025));
            list_Tuple_BuySideDepth.Add(new Tuple<int, int, double>(17, 2045, 67.0000));
            list_Tuple_BuySideDepth.Add(new Tuple<int, int, double>(22, 2080, 66.9875));
            list_Tuple_BuySideDepth.Add(new Tuple<int, int, double>(23, 1564, 66.9950));

    // For GridListControl2.
            list_Tuple_BuySideDepth1 = new List<Tuple<double, int, int>>();
            list_Tuple_BuySideDepth1.Add(new Tuple<double, int, int>(67.0075, 813, 10));
            list_Tuple_BuySideDepth1.Add(new Tuple<double, int, int>(67.0100, 1255, 28));
            list_Tuple_BuySideDepth1.Add(new Tuple<double, int, int>(67.0125, 715, 13));
            list_Tuple_BuySideDepth1.Add(new Tuple<double, int, int>(67.0150, 1687, 19));
            list_Tuple_BuySideDepth1.Add(new Tuple<double, int, int>(67.0175, 1612, 24));
     }    
 }

private void Form1_Load(object sender, EventArgs e)
{        
    MaximizeBox = false;
    MinimizeBox = false;
    if (true)
    {
        gridListControl1.MultiColumn = true;
        gridListControl1.ForeColor = Color.Red;
        gridListControl1.DataSource = list_Tuple_BuySideDepth;
        this.gridListControl1.Grid.HScrollBehavior = Syncfusion.Windows.Forms.Grid.GridScrollbarMode.Disabled;//GridScrollbarMode.Disabled;
        gridListControl2.MultiColumn = true;
        gridListControl2.ForeColor = Color.Red;
        gridListControl2.DataSource = list_Tuple_BuySideDepth;
        this.gridListControl2.Grid.HScrollBehavior = Syncfusion.Windows.Forms.Grid.GridScrollbarMode.Disabled;
    }
}
Community
  • 1
  • 1
Ankit Raman
  • 79
  • 1
  • 14

2 Answers2

1

Simply use a timer and update all items with new random values like

private System.Windows.Forms.Timer updateTimer = new System.Windows.Forms.Timer();
public Form1()
{
    InitializeComponent();

    updateTimer.Interval = 1000;
    updateTimer.Tick += new EventHandler(update);
    updateTimer.Start();
}

private Random rnd = new Random();
private void update(Object object, EventArgs eventArgs)
{
    for (int i = 0; i < list_Tuple_BuySideDepth.Count; i++)
    {
        list_Tuple_BuySideDepth[i] = new Tuple<int, int, double>(rnd.Next(), rnd.Next(), rnd.NextDouble());
    }
    for (int i = 0; i < list_Tuple_BuySideDepth1.Count; i++)
    {
        list_Tuple_BuySideDepth1[i] = new Tuple<double, int, int>(rnd.NextDouble(), rnd.Next(), rnd.Next());
    }
}
Fruchtzwerg
  • 10,999
  • 12
  • 40
  • 49
  • I did by your way, but errors comes like `property or indexer system.Tuple CAN NOT BE ASSIGNED TO -- IT IS READ ONLY`. how to fix it? – Ankit Raman Mar 06 '17 at 19:18
  • Hi, I did it by your way.thank you. One more query I have that how to disable vertical scrollbar in `grid list control` on same above program. Kindly suggest. – Ankit Raman Mar 07 '17 at 04:59
  • Check out this link: https://www.syncfusion.com/kb/6659/how-to-hide-horizontal-scroll-bars-in-gridlistcontrol – Fruchtzwerg Mar 07 '17 at 08:43
  • Hi, the vertical scrollbar can be disabled as like horizontal scrollbar you used. please use this code `gridListControl1.Grid.VScrollBehavior = Syncfusion.Windows.Forms.Grid.GridScrollbarMode.Disabled;` – Prithiv Mar 07 '17 at 10:45
0

Please use the Timer to update the datasource dynamically and to disable the vertical scrollbar , VScrollBehavior property can be used. Please refer to the attached sample and make use of the below code,

Timer timer;
        timer = new Timer();
        timer.Tick += new EventHandler(timer_Tick);

void timer_Tick(object sender, EventArgs e)
        {
            Random rand = new Random();
            int r = rand.Next(1000,10000);
            for (int i = 0; i < 10; i++)
            {
                list1[i] = new Data(r.ToString(), "Category" + r.ToString(), "Desc" + r.ToString(), r.ToString() + "Data");
                list2[i] = new Data(r.ToString(), "Category" + r.ToString(), "Desc" + r.ToString(), r.ToString() + "Data");
            r = rand.Next(1000, 10000);
        }

        GridRangeInfo range1 = this.gridListControl1.Grid.ViewLayout.VisibleCellsRange;
        GridRangeInfo range2 = this.gridListControl2.Grid.ViewLayout.VisibleCellsRange;
        this.gridListControl1.Grid.RefreshRange(range1);
        this.gridListControl2.Grid.RefreshRange(range2);
    }
    public void Init()
    {
        list1 = new List<Data>();
        list2 = new List<Data>();

        Random rand = new Random();
        int r = rand.Next(100);
        for (int i = 0; i < 10; i++)
        {

            list1.Add(new Data(r.ToString(), "Category" + r.ToString(), "Desc" + r.ToString(), r.ToString() + "Data"));
            r = rand.Next(100);
            list2.Add(new Data(r.ToString(), "Category" + r.ToString(), "Desc" + r.ToString(), r.ToString() + "Data"));
        }
    }

    private void btn_Start_Click(object sender, EventArgs e)
    {
        timer.Interval = 1000;
        timer.Start();
    }

    private void btn_Stop_Click(object sender, EventArgs e)
    {
        timer.Stop();
    }

//To disable the VerticalScrollbar
this.gridListControl1.Grid.VScrollBehavior = Syncfusion.Windows.Forms.Grid.GridScrollbarMode.Disabled;

Sample link: [https://drive.google.com/open?id=0B9MOGv1FOt-TcUlqQjJaQXdLSnc ]

-Prithivi

Prithiv
  • 504
  • 5
  • 20