我有两个GridListControl窗口,每个窗口有5行和3列,我在每个单元格中都有一些硬编码值,但我希望使用Random
和Timer
在每个单元格中动态更新它。
我从Here:开始,但没有清除我的概念。
如何将Random
和Timer
与我的代码集成?
请帮助。
我的部分代码如下:
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;
}
}
答案 0 :(得分:1)
只需使用计时器并使用新随机值(如
)更新所有项目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());
}
}
答案 1 :(得分:0)
请使用Timer动态更新数据源并禁用垂直滚动条,可以使用VScrollBehavior属性。请参阅随附的样本并使用以下代码
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;
示例链接: [https://drive.google.com/open?id=0B9MOGv1FOt-TcUlqQjJaQXdLSnc]
-Prithivi