Вывод не записывается в DGV в моем коде - PullRequest
1 голос
/ 22 июля 2010

Я не совсем уверен, что здесь происходит - я пытался отладить, но не смог придумать никакого объяснения, почему ничего не пишется в мое представление данных.

У кого-нибудь есть идеи?

public partial class CleanPathResults : Form
{
    public CleanPathResults()
    {
        InitializeComponent();
    }

    public void RenameFolder(string folderName)
    {
        string regPattern = (@"[~#&$!%+{}]+");
        string replacement = "";
        List<string> normal = new List<string>();
        Regex regExPattern = new Regex(regPattern);
        dataGridView1.Rows.Clear();
        List<string> cleanDirNames = new List<string>();

        try
        {
            if (regExPattern.IsMatch(folderName))
            {
                string cleanup = regExPattern.Replace(folderName, replacement);
                System.IO.Directory.Move(folderName, cleanup);
                DataGridViewRow grid = new DataGridViewRow();
                grid.CreateCells(dataGridView1);
                grid.Cells[0].Value = folderName;
                grid.Cells[1].Value = cleanup;
                dataGridView1.Rows.Add(grid);
                folderName = cleanup;
                cleanDirNames.Add(cleanup);

            }
            else
            {
                normal.Add(folderName);
            }


        }
        catch(Exception e)
        {

            throw;

        }

        DirectoryInfo di = new DirectoryInfo(folderName);
        DirectoryInfo[] diArr = di.GetDirectories();


        List<string> subdirectories = new List<string>();
        try
        {
            foreach (DirectoryInfo subdir in diArr)
            {
                subdirectories.Add(subdir.ToString());
            }
        }
        catch(Exception e)
        {
            throw;
        }

        try
        {
            foreach (string folder in subdirectories)
            {
                string sF = folder;

                RenameFolder(folderName + "\\" + sF);
            }
        }
        catch(Exception e)
        {
            throw;
        }

  }

    private void button1_Click_1(object sender, EventArgs e)
    {
        Application.Exit();
    }


}

Я не получаю никаких ошибок - приложение делает то, что должно делать (в этом случае убедитесь, что имена папок не содержат недопустимых символов, определенных в регулярном выражении) ...однако это просто проблема вывода не отображается на dgv.

Любая помощь будет оценена.

Ответы [ 2 ]

1 голос
/ 22 июля 2010

Возможно, для вашего регулярного выражения нет соответствия ... таким образом, строка не создается и не добавляется в dataGridView1.

Вы отладили код? Попробуйте вставить точку останова в оператор if сразу после regExPattern.IsMatch. Посмотрите, останавливается ли на этом отладчик. Таким образом, вы можете утверждать, что создается новая строка.

Я постараюсь помочь вам больше, если это так.

0 голосов
/ 22 июля 2010

на самом деле не имеет значения.Выяснилось, что b / c мой метод продолжает вызывать себя, datagridview1.Rows.Clear () будет очищать все, каждый раз, когда метод вызывает сам себя.Отсюда нет выхода.Спасибо за всю вашу помощь, хотя Leniel!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...