'cAlgo.API.Application' does not contain a definition for 'Run' and no extension method 'Run' - Winform
Created at 18 Nov 2019, 18:19
JO
'cAlgo.API.Application' does not contain a definition for 'Run' and no extension method 'Run' - Winform
18 Nov 2019, 18:19
Hi,
After I update CTrader to 3.6, I got an error on my code that is running a winform.
It says that 'cAlgo.API.Application' does not contain a definition for 'Run' and no extension method 'Run'.
Am I missing something on the update?
using System; using System.Threading; using System.Windows.Forms; using cAlgo.API; namespace cAlgo { [Robot(TimeZone = TimeZones.UTC, AccessRights = AccessRights.FullAccess)] public class Winform : Robot { [Parameter(DefaultValue = 0.0)] public double Parameter { get; set; } private Thread thread; private Form form; private System.Windows.Forms.GroupBox groupBox1; private System.Windows.Forms.Button button1; private System.Windows.Forms.ComboBox comboBox1; [STAThread()] protected override void OnStart() { thread = new Thread(new ThreadStart(WindowsApp)); thread.SetApartmentState(ApartmentState.STA); thread.Start(); thread.Join(); while (thread.IsAlive) System.Windows.Forms.Application.DoEvents(); } protected override void OnTick() { Print("OnTick test"); } protected override void OnStop() { // Put your deinitialization logic here } [STAThread()] private void WindowsApp() { form = new Form(); InitializeComponent(); form.AutoScaleDimensions = new System.Drawing.SizeF(8f, 16f); form.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; form.ClientSize = new System.Drawing.Size(443, 633); form.Controls.Add(this.groupBox1); form.Name = "Form1"; form.Text = "Test"; form.TopMost = true; form.ResumeLayout(false); form.PerformLayout(); Application.Run(form); } // // PButton "TEST" // private void button1_Click(object sender, EventArgs e) { Print("Button test"); int comboBox1Value = Convert.ToInt32(comboBox1.SelectedItem); Print("ComboBox1 = " + comboBox1Value); } private void InitializeComponent() { this.groupBox1 = new System.Windows.Forms.GroupBox(); this.comboBox1 = new System.Windows.Forms.ComboBox(); this.button1 = new System.Windows.Forms.Button(); this.groupBox1.SuspendLayout(); // // groupBox1 // this.groupBox1.Controls.Add(this.comboBox1); this.groupBox1.Controls.Add(this.button1); this.groupBox1.Location = new System.Drawing.Point(0, 0); this.groupBox1.Name = "groupBox1"; this.groupBox1.Size = new System.Drawing.Size(444, 225); this.groupBox1.TabIndex = 0; this.groupBox1.TabStop = false; this.groupBox1.Text = "groupBox1"; // // comboBox1 // this.comboBox1.FormattingEnabled = true; this.comboBox1.Items.AddRange(new object[] { 1, 2, 3, 5, 10 }); this.comboBox1.Location = new System.Drawing.Point(15, 71); this.comboBox1.Name = "comboBox10"; this.comboBox1.Size = new System.Drawing.Size(61, 24); this.comboBox1.TabIndex = 4; // // button1 test // this.button1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(192)))), ((int)(((byte)(0))))); this.button1.Cursor = System.Windows.Forms.Cursors.Hand; this.button1.Font = new System.Drawing.Font("Microsoft Sans Serif", 15f, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(238))); this.button1.Location = new System.Drawing.Point(295, 21); this.button1.Name = "button1"; this.button1.Size = new System.Drawing.Size(122, 40); this.button1.TabIndex = 2; this.button1.Text = "TEST"; this.button1.UseVisualStyleBackColor = false; this.button1.Click += new System.EventHandler(this.button1_Click); // // Form1 // this.groupBox1.ResumeLayout(false); this.groupBox1.PerformLayout(); } } }
It's on line 55.
Thank you.
PanagiotisCharalampous
19 Nov 2019, 08:25
Hi johncarlodelacruz,
You need to replace line 55 with the following
Best Regards,
Panagiotis
@PanagiotisCharalampous