Из кода запустить событие, например, нажатия кнопки
при этом должен существовать обработчик события Clik для button1
Если этого не сделать, при попытке поменять что то в форме, добавить, будет выдавать ошибку
button1_Click(null, null);или
button1.PerformClick();
при этом должен существовать обработчик события Clik для button1
private void button1_Click(object sender, EventArgs e) { }Вызов событие нажатия кнопки в одной форме, нажатием в другой
namespace WindowsFormsApplication1 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { MessageBox.Show("!!!"); } private void Form1_Load(object sender, EventArgs e) { Form2 f = new Form2(button1); f.Show(); } } }
namespace WindowsFormsApplication1 { public partial class Form2 : Form { Button b; public Form2(Button b) { this.b = b; InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { b.PerformClick(); } } }
Простейший пример создания потока:
//Объявляем класс Thread, загоняем экземпляр в переменную
public Thread newThread;
private void Form1_Load(object sender, EventArgs e)
{
//Создаём новый поток, им будет функция F2
newThread = new Thread(F2);
//Запускаем поток на выполнение
newThread.Start();
}
private void F2() {
int i = 0;
//Запускаем цикл
while(i == 0){
//даём доступ к форме
this.Invoke((MethodInvoker)delegate()
{
//присваиваем значение текстовому полю
textBox1.Text += "1";
//делаем паузу на 50 мсек
Thread.Sleep(50);
});
}
}
private void button1_Click(object sender, EventArgs e)
{
//Останавливаем/удаляем поток
newThread.Abort();
}
данный фрагмент даёт доступ к форме из постороннего потока
private void button1_Click(object sender, EventArgs e)
{
//Останавливаем/удаляем поток
newThread.Abort();
}
Если этого не сделать, при попытке поменять что то в форме, добавить, будет выдавать ошибку
Комментариев нет:
Отправить комментарий
ваше мнение...