dejf111 Ответов: 1

Как загрузить текст в richtext box?


Здравствуйте, у меня проблема с загрузкой текста в richtextbox.Я построил весь код, но пропустил последний шаг. Текст не появляется в richtextbox, но когда я нажимаю ctrl+V, текст появляется. Все считают, что я хотел бы tol oad без щелчка.
Спасибо всем за все советы

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

Форма 1:
using System;

using System.IO;
using System.Windows.Forms;


namespace projektadresar
{
    public partial class Form1 : Form
    {

        public static string folderPath = string.Empty;
        Form2 form2;

        public Form1()
        {
            InitializeComponent();
            form2 = new Form2();
        }

        public void button1_Click(object sender, EventArgs e)
        {

            FolderBrowserDialog folder = new FolderBrowserDialog();

            if (folder.ShowDialog() == DialogResult.OK)
            {
                folderPath = Path.GetDirectoryName(folder.SelectedPath);
                textBox1.Text = folderPath;
            }
        }

        private void button2_Click(object sender, EventArgs e)
        {

            form2.Show();
            Visible = false;
        }      
    }
}

Форма 2:
using System;
using System.IO;
using System.Windows.Forms;


namespace projektadresar
{
    public partial class Form2 : Form
    {
        
        
        public Form2()

        {
            InitializeComponent();
        }

        public static int GetFileCount()
        {
            var fileCount = 0;
            var fileIter = Directory.EnumerateFiles(Form1.folderPath);
            foreach (var file in fileIter)
                fileCount++;
            return fileCount;
        }
        public static int GetDirectoryCount()
        {
            var directoryCount = 0;
            var directoryIter = Directory.EnumerateDirectories(Form1.folderPath);
            foreach (var directory in directoryIter)
                directoryCount++;
            return directoryCount;
        }

        private void richTextBox1_Load(object sender, EventArgs e)
        {

            richTextBox1.Text = "Directories:" + GetDirectoryCount() + Environment.NewLine + "Files:" + GetFileCount();
        }
    }
}

Richard MacCutchan

Куда же идет призыв richTextBox1_Load?

dejf111

Оооо спасибо я осел

1 Ответов

Рейтинг:
8

BillWoodruff

Во-первых, предполагая, что форма 1 является основной формой, и вы скрываете ее, как вы будете показывать ее снова, если форма 2 не имеет ссылки на нее ? Вам действительно нужно показать вторую форму ?

private void richTextBox1_Load(object sender, EventArgs e)
{
    richTextBox1.Text = "Directories:" + GetDirectoryCount() + Environment.NewLine + "Files:" + GetFileCount();
}
RichTextBox не имеет события загрузки: это должно быть событие загрузки Form2.

Почему пользователь должен показывать Form2, не убедившись, что у вас есть правильный путь:
public void button1_Click(object sender, EventArgs e)
{
    button2.Enabled = false;

    FolderBrowserDialog folder = new FolderBrowserDialog();

    if (folder.ShowDialog() == DialogResult.OK)
    {
        folderPath = Path.GetDirectoryName(folder.SelectedPath);
        textBox1.Text = folderPath;

        button2.Enabled = true;
    }
    else
    {
        // throw an error ?
    }
}
Эти формы можно использовать для упрощения методов Form2:

верните каталог.GetFiles(folderPath).Длина;

верните каталог.GetDirectories(путь к папке).Длина;


dejf111

Большое спасибо

dejf111

У меня есть вопросы, как бы я создал ссылку обратно в форму 1? Можно ли это решить без формы 2?

BillWoodruff

Я бы предпочел не скрывать Form1, а сделать Form1 " владельцем Form2: тогда Form2 всегда будет появляться поверх Form1. Вы также можете назначить Form2 событие закрытия в Form1, которое снова сделает Form1 видимым.

Однако, если я не знаю, почему вы хотите показать вторую форму, я не могу дать вам лучшего совета :)

dejf111

до сих пор я не обнаружил, что он просчитывается :D