C# 线程中操作窗体控件

  • A+
所属分类:.NET技术
摘要

如果需要查看更多文章,请微信搜索公众号 csharp编程大全,需要进C#交流群群请加微信z438679770,备注进群, 我邀请你进群! ! !

如果需要查看更多文章,请微信搜索公众号 csharp编程大全,需要进C#交流群群请加微信z438679770,备注进群, 我邀请你进群! ! !

C# 线程中操作窗体控件

1. 在线程中给textBox1

using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms;  using System.Threading;  namespace WindowsFormsApp12 {     public partial class Form1 : Form     {                  public Form1()         {             InitializeComponent();         }          private void Form1_Load(object sender, EventArgs e)         {             // CheckForIllegalCrossThreadCalls = false;            // Class1 cs1 = new Class1();             Thread th = new Thread(test1);             th.Start();             // cs1.ShowEvent = test;          }          public void test1()         {             // ShowlbDevTem("123");             textBox1.Text = "123";          }           private void button1_Click(object sender, EventArgs e)         {             // ShowlbDevTem("112");          }          /*   public void test(string str)           {                ShowlbDevTem(str);           }                      public delegate void SWTDelegate(string AddStr);            //public delegate void ComsumerTextDelegate(int Index, string AddStr);            public  void ShowlbDevTem(string AddStr)            {                if (textBox1.InvokeRequired)                {                    SWTDelegate pd = new SWTDelegate(ShowlbDevTem);                    textBox1.Invoke(pd, new object[] { AddStr });                }                else                {                    textBox1.Text = AddStr;                    //richTextBox1.AppendText(AddStr);                }            }             public void dataShow(int row, int column, string str)            {                row = row % 30;                ShowMessage(dataGridViewX1, str, row, column);             }             delegate void ShowMessageDelegate(DataGridView dg, string message, int row, int column);           private void ShowMessage(DataGridView dg, string message, int row, int column)           {               if (dg.InvokeRequired)               {                   ShowMessageDelegate showMessageDelegate = ShowMessage;                   dg.Invoke(showMessageDelegate, new object[] { dg, message, row, column });               }               else               {                    dg.Rows[row].Cells[column].Value = message;               }           }           */       } } 

  C# 线程中操作窗体控件

 

 

using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms;  using System.Threading;  namespace WindowsFormsApp12 {     public partial class Form1 : Form     {                  public Form1()         {             InitializeComponent();         }          private void Form1_Load(object sender, EventArgs e)         {             //CheckForIllegalCrossThreadCalls = false;            // Class1 cs1 = new Class1();             Thread th = new Thread(test1);             th.Start();             // cs1.ShowEvent = test;          }          public void test1()         {              ShowlbDevTem("123");             //textBox1.Text = "123";          }           private void button1_Click(object sender, EventArgs e)         {             // ShowlbDevTem("112");          }          /*  public void test(string str)           {                ShowlbDevTem(str);           }*/                      public delegate void SWTDelegate(string AddStr);            //public delegate void ComsumerTextDelegate(int Index, string AddStr);            public  void ShowlbDevTem(string AddStr)            {                if (textBox1.InvokeRequired)                {                    SWTDelegate pd = new SWTDelegate(ShowlbDevTem);                    textBox1.Invoke(pd, new object[] { AddStr });                }                else                {                    textBox1.Text = AddStr;                    //richTextBox1.AppendText(AddStr);                }            }           /*  public void dataShow(int row, int column, string str)            {                row = row % 30;                ShowMessage(dataGridViewX1, str, row, column);             }             delegate void ShowMessageDelegate(DataGridView dg, string message, int row, int column);           private void ShowMessage(DataGridView dg, string message, int row, int column)           {               if (dg.InvokeRequired)               {                   ShowMessageDelegate showMessageDelegate = ShowMessage;                   dg.Invoke(showMessageDelegate, new object[] { dg, message, row, column });               }               else               {                    dg.Rows[row].Cells[column].Value = message;               }           }           */       } } 

  C# 线程中操作窗体控件

 

 

using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms;  using System.Threading;  namespace WindowsFormsApp12 {     public partial class Form1 : Form     {                  public Form1()         {             InitializeComponent();         }          private void Form1_Load(object sender, EventArgs e)         {             //CheckForIllegalCrossThreadCalls = false;             Class1 cs1 = new Class1();             Thread th = new Thread(cs1.test);             th.Start();             // cs1.ShowEvent = test;          }          public void test1()         {              ShowlbDevTem("123");             //textBox1.Text = "123";          }           private void button1_Click(object sender, EventArgs e)         {             // ShowlbDevTem("112");          }          /*  public void test(string str)           {                ShowlbDevTem(str);           }*/                      public delegate void SWTDelegate(string AddStr);            //public delegate void ComsumerTextDelegate(int Index, string AddStr);            public  void ShowlbDevTem(string AddStr)            {                if (textBox1.InvokeRequired)                {                    SWTDelegate pd = new SWTDelegate(ShowlbDevTem);                    textBox1.Invoke(pd, new object[] { AddStr });                }                else                {                    textBox1.Text = AddStr;                    //richTextBox1.AppendText(AddStr);                }            }           /*  public void dataShow(int row, int column, string str)            {                row = row % 30;                ShowMessage(dataGridViewX1, str, row, column);             }             delegate void ShowMessageDelegate(DataGridView dg, string message, int row, int column);           private void ShowMessage(DataGridView dg, string message, int row, int column)           {               if (dg.InvokeRequired)               {                   ShowMessageDelegate showMessageDelegate = ShowMessage;                   dg.Invoke(showMessageDelegate, new object[] { dg, message, row, column });               }               else               {                    dg.Rows[row].Cells[column].Value = message;               }           }           */       } } 

  

class1中代码:

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;  using System.Threading; using System.Windows.Forms;  namespace WindowsFormsApp12 {     class Class1     {         //public Action<string> ShowEvent;         public void test()         {             //ShowEvent("123456789");              Form1 f1 = new Form1();             f1.ShowlbDevTem("112");           }                        } } 

  C# 线程中操作窗体控件

 

 

using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms;  using System.Threading;  namespace WindowsFormsApp12 {     public partial class Form1 : Form     {                  public Form1()         {             InitializeComponent();         }          private void Form1_Load(object sender, EventArgs e)         {             //CheckForIllegalCrossThreadCalls = false;             Class1 cs1 = new Class1();             Thread th = new Thread(cs1.test);             th.Start();              cs1.ShowEvent = test;          }          public void test1()         {              ShowlbDevTem("123");             //textBox1.Text = "123";          }           private void button1_Click(object sender, EventArgs e)         {             // ShowlbDevTem("112");          }           public void test(string str)           {                ShowlbDevTem(str);           }                      public delegate void SWTDelegate(string AddStr);            //public delegate void ComsumerTextDelegate(int Index, string AddStr);            public  void ShowlbDevTem(string AddStr)            {                if (textBox1.InvokeRequired)                {                    SWTDelegate pd = new SWTDelegate(ShowlbDevTem);                    textBox1.Invoke(pd, new object[] { AddStr });                }                else                {                    textBox1.Text = AddStr;                    //richTextBox1.AppendText(AddStr);                }            }           /*  public void dataShow(int row, int column, string str)            {                row = row % 30;                ShowMessage(dataGridViewX1, str, row, column);             }             delegate void ShowMessageDelegate(DataGridView dg, string message, int row, int column);           private void ShowMessage(DataGridView dg, string message, int row, int column)           {               if (dg.InvokeRequired)               {                   ShowMessageDelegate showMessageDelegate = ShowMessage;                   dg.Invoke(showMessageDelegate, new object[] { dg, message, row, column });               }               else               {                    dg.Rows[row].Cells[column].Value = message;               }           }           */       } } 

  类中:

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;  using System.Threading; using System.Windows.Forms;  namespace WindowsFormsApp12 {     class Class1     {         public Action<string> ShowEvent;         public void test()         {             ShowEvent("123456789");             // Form1 f1 = new Form1();             //f1.ShowlbDevTem("112");           }                        } } 

  C# 线程中操作窗体控件

 

 

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;  using System.Threading; using System.Windows.Forms;  namespace WindowsFormsApp12 {     class Class1     {         public Action<string> ShowEvent;         public void test()         {               // Class2 cs2 = new Class2();             // cs2.test(ShowEvent);             Class2 cs2 = new Class2();            cs2.test(ShowEvent);          }         } } 

  class2代码

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;  using System.Threading;  namespace WindowsFormsApp12 {     class Class2     {        // public Action<string> ShowEvent1;         public void test(Action<string> ShowEvent)         {               ShowEvent("123456789");          }            } }