Позвольте мне дать вам быстрый обзор моей работы.Я работаю над winforms.
Что я хочу сделать: Я хочу выбрать файл и извлечь из него отдельные абзацы, основываясь на выбранных значениях, которые есть в моем выпадающий .
Что я сделал:
private void ExtrctBtn_Click(object sender, EventArgs e)
{
//I have another button to select file
string sourceFile = "", resultFile = "";
if (sourceFile == null || !(File.Exists(sourceFile)))
{
MessageBox.Show("Please select a file to continue", "File Error");
}
else
{
sw = Stopwatch.StartNew(); //start the timer
ExtrctBtn.Enabled = false;
resultFile = Path.Combine(Path.GetDirectoryName(sourceFile), "Results_" + DateTime.Now.ToString("yyMMddHHmmss") + ".txt");
WriteReport(resultFile);
sw.Stop(); //stop the timer
}
private void WriteReport(string dest)
{
try
{
int n = 0;
string key = "";
string[] keys = new string[10];
Found:
key = CmboBox.SelectedItem.ToString();
if (!keys.Contains(key))
{
//copy the required data from source file to result file
if (n < keys.Length)
keys[n++] = key;
DialogResult dialogResult = MessageBox.Show("Select next key", "Continue?", MessageBoxButtons.YesNo);
if (dialogResult == DialogResult.Yes)
{
goto Found;
}
else //if (dialogResult == DialogResult.No)
{
goto Finish;
}
}
else
{
MessageBox.Show("You have already added this Key","Error");
}
Finish:
SaveFile();
}
catch (Exception e)
{
MessageBox.Show(e.ToString(), "Exception");
}
}
Все работает нормально. Что я не могу сделать : после выбора 1-го элемента в выпадающем списке и выполнения операции копирования-вставки я не могу выбрать следующие элементы.Он просто переходит на Found и выдает сообщение об ошибке.Я не хочу автоматически выбирать элементы списка.Скорее, я хочу подождать, пока пользователь не выберет другую клавишу из выпадающего списка и на основе выбора клавиши, извлечь следующий абзац .
Я понимаю, что что-то упустил.Но я не знаю что! Что я должен сделать, чтобы пользователь мог выбирать другие элементы списка, когда я нажимаю да в окне сообщения? Я могу использовать концепцию Threading и использовать Sleep (), чтобы подождать несколько секунд для пользователявход, но я не думаю, что это осуществимо.
У кого-нибудь есть другая идея?Любая помощь приветствуется.заранее спасибо.