На данный вопрос уже ответили:
Имеется код, который билдится вроде бы нормально, но как только начинается запуск падает с ошибкой -
Исключение типа "System.NullReferenceException" возникло в av.exe, но не было обработано в коде пользователя
Ошибка ссылается на:
webBrowser1.Document.Click += docCompleted;
Событию присвоен null там где оно объявляется, можно ли как то это обыграть или может по другому объявить событие? Спасибо заранее
Код:
namespace av
{
public partial class MainForm : Form
{
private Excel.Application ex = new Microsoft.Office.Interop.Excel.Application();
public static string result;
public static string first;
public static string second;
public static string urlo;
public MainForm()
{
InitializeComponent();
ex.Visible = false;
ex.Workbooks.Open(sourcetext.Text,
Type.Missing, Type.Missing, Type.Missing, Type.Missing,
Type.Missing, Type.Missing, Type.Missing, Type.Missing,
Type.Missing, Type.Missing, Type.Missing, Type.Missing,
Type.Missing, Type.Missing);
LoadAndClick();
}
private async void LoadAndClick()
{
int nach = Convert.ToInt32(strNtext.Text);
int konech = Convert.ToInt32(strAlltext.Text);
for (int i = nach; i <= konech; i++)
{
first = st1text.Text + i.ToString();
second = st2text.Text + i.ToString();
Excel.Worksheet newsheet = (Excel.Worksheet)ex.Worksheets.get_Item(1);
Excel.Range rngfirst = newsheet.Range[first];
Excel.Range rngsec = newsheet.Range[second];
urlo = "https://yandex.ru/images/search?family=yes&text="+rngfirst.Value+"+"+rngsec.Value;
Debug.WriteLine(urlo);
var tcs = new TaskCompletionSource<int>();
HtmlElementEventHandler docCompleted = null;
result = strestext.Text + i.ToString();
docCompleted = (s, e) =>
{
try
{
webBrowser1.Document.Click -= docCompleted;
string element = webBrowser1.Document.GetElementFromPoint(e.ClientMousePosition).GetAttribute("href");
Debug.WriteLine(element);
Regex regex = new Regex(@"img_url=(.*?)&pos=(.*?)&", RegexOptions.IgnoreCase);
foreach (Match match in regex.Matches(element))
{
Debug.WriteLine("Match 1: " + match.Groups[1].Value);
string sss = System.Uri.UnescapeDataString(match.Groups[1].Value);
Debug.WriteLine(s);
Excel.Worksheet sheet = (Excel.Worksheet)ex.Worksheets.get_Item(1);
Excel.Range rng3 = sheet.Range[result];
rng3.Value = sss;
int to = Convert.ToInt32(timeouttext.Text);
System.Threading.Thread.Sleep(to);
ex.Save();
}
}
finally
{
// отмечаем, что событие отработало.
tcs.TrySetResult(0);
}
};
webBrowser1.Navigate(urlo);
Debug.WriteLine("Загрежно");
webBrowser1.Document.Click += docCompleted;
await tcs.Task; // ждем, когда событие сработает.
}
ex.Workbooks.Close();
}
}
}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Нужно написать Telegram бота с личным кабинетом в котором будет баланс пользователя и специально сгенерированная строка для реферальной ссылкиМожно...
Написал класс для работы с БД от SQL, однако в ходе работы создаётся дочерний процесс от SQL, который нагружает процессор на 20%, и потребляет 170 мб оперативы...
Помогите разобраться с ошибкой Notice: Undefined index: image в переменной $post_image и $post_image_tmp Что не так?