thirupathiCst Ответов: 1

Как реализовать кнопку внутри оператора foreach нажмите на конформацию для хранения значения текстового поля


когда пользователь нажимает на кнопку значения хранятся в БД и другая кнопка нажата, что нравится (пропустить) нет chaneges в текстовом поле значения как вызвать кнопку нажмите в Forloop

[edit]добавлен блок кода-OriginalGriff [/edit]

Что я уже пробовал:

foreach (FileInfo info in dir.GetFiles("*.jpg"))
                {
                    image_name = info.FullName;
                    Image Limg = Image.FromFile(info.FullName);
                   // MessageBox.Show(image_name);
                    Image img = new Bitmap(Limg, 700, 580);
                    pictureBox1.Image = img;
                    //getfile = fopen.FileName;
                    Application.DoEvents();
                    //System.Threading.Thread.Sleep(1000);
                    x = 1200;
                    int y = 430, width = 230, height = 80;
                    if (x == 1200)
                    {
                        Bitmap source = new Bitmap(image_name);
                        Bitmap CroppedImage = source.Clone(new System.Drawing.Rectangle(x, y, width, height), source.PixelFormat);
                        pictureBox2.Image = new Bitmap(CroppedImage);

                        //string Create_dir = @"C:\\OCRREAD\\"+ Path.GetFileName(fopen.FileName);
                        //if (!Directory.Exists(Create_dir))
                        //{
                        // Directory.CreateDirectory(Create_dir);
                        CroppedImage.Save(@"C:\\OCRREAD\\" + info);
                        getfile = @"C:\\OCRREAD\\" + info;
                        // }
                        Application.DoEvents();
                        MODI.Document objModi = new MODI.Document();
                        objModi.Create(getfile);
                        objModi.OCR(MODI.MiLANGUAGES.miLANG_ENGLISH, true, true);
                        MODI.Image image = (MODI.Image)objModi.Images[0];
                        MODI.Layout layout = image.Layout;
                        StringBuilder sb = new StringBuilder();
                        for (int j = 0; j < layout.Words.Count; j++)
                        {
                            MODI.Word word = (MODI.Word)layout.Words[j];
                            sb.Append(word.Text);
                            sb.Append(" ");
                            // getting the word's characters
                            for (int k = 0; k < word.Rects.Count; k++)
                            {
                                MODI.MiRect rect = (MODI.MiRect)word.Rects[k];
                                charactersHeights += rect.Bottom - rect.Top;
                                numOfCharacters++;
                            }
                        }
                        File.Delete(getfile);
                        Firstvalue = sb.ToString();
                        if (Firstvalue.Contains("-"))
                        {
                            Firstvalue = Firstvalue.Replace("-", "");
                        }
                        //MessageBox.Show(Firstvalue);

                    }
}

1 Ответов

Рейтинг:
2

OriginalGriff

Ваш код не" нажимает " кнопки - он реагирует на то, что делает пользователь, и пользователь не может нажать кнопку, пока for или foreach цикл работает-или, по крайней мере, не с какой-либо точностью.
Если вы имеете в виду, что хотите выполнить код, который будет выполняться, когда пользователь нажимает кнопку, то это просто: переместите код в отдельный метод и вызовите его из обоих мест:

private void MyButton_Click(object sender, EventArgs e)
    {
    DoMyFunction();
    }
private void DoMyFunction()
    {
    }
    ...
    foreach (FileInfo info in dir.GetFiles("*.jpg"))
        {
        ...
        DoMyFunction();
        ...
        }

Если вы имеете в виду, что хотите, чтобы пользователь подтверждал каждое действие нажатием кнопки, то это тоже просто: просто используйте MessageBox:
foreach (FileInfo info in dir.GetFiles("*.jpg"))
    {
    ...
    if (MessageBox.Show("Are you sure?", "Please confirm delete", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
        {
        ...
        }
    }


Если вы пытаетесь сделать что-то совершенно другое, то вам нужно объяснить гораздо более подробно!