Архив метки: Csharp

Список файлов с заданным расширением в Csharp

Список файловЗадача:

Получить список файлов с заданным раcширением в Csharp и вывести в listBox.

Решение:

1. Создадим форму и поместим туда 2 компонента listBox и Button

listBox для списка файлов

2. Переходим к созданию кода (2 раза на нашей созданной кнопке )

Пишем следующий код
Листинг примера получения списка файлов в директории

private void button1_Click(object sender, EventArgs e)
{
// создаем список строк
string[] s;
// получаем список файлов с нашим расширением
s = System.IO.Directory.GetFiles(System.IO.Directory.GetCurrentDirectory(), "*.exe");
//перебираем список файлов
foreach (string s2 in s)
{
//добавляем имя файла без расширения
listBox1.Items.Add(System.IO.Path.GetFileNameWithoutExtension(s2));
}
}

Подробно про эту строчку

s = System.IO.Directory.GetFiles(System.IO.Directory.GetCurrentDirectory(), "*.exe");

System.IO.Directory.GetCurrentDirectory() — возвращает текущую директорию
«*.exe» — наше заданное расширение файла
System.IO.Directory.GetFiles() — выбирает список файлов и заданной директории с заданным шаблоном

Результат в заголовке статьи

Конвертация изображения в строку и обратно. С#

Реализация хранения(записи) изображение(ия) в файл.
Один из вариантов решения — это преобразовать изображение в строку.
Как строку записать в файл не описывается.

Задача:

преобразовать изображение Image в строку string и обратно.

Решение:

Листинг функции Image to String

//функция преобразования изображения в строку
public string ImgToStr(string filename)
        {
            MemoryStream Memostr = new MemoryStream();
			Image Img = Image.FromFile(filename);
            Img.Save(Memostr, im.RawFormat);
            byte[] arrayimg = Memostr.ToArray();
            return Convert.ToBase64String(arrayimg);
        }

Листинг обратной функции String to Image

//функция преобразования строки в изображение
public Image StrToImg(string StrImg)
        {
            byte[] arrayimg = Convert.FromBase64String(StrImg);
            Image imageStr = Image.FromStream(new MemoryStream(arrayimg));
            return imageStr;
        }

Пример листинга использования этих функций
при событии нажатия кнопки (форма на ней Button, pictureBox, openFileDialog);

private void button1_Click(object sender, EventArgs e)
        {

            if (openFileDialog1.ShowDialog() == DialogResult.OK)
            {
                s = ImgToStr(openFileDialog1.FileName);
            }
            pictureBox1.Image = StrToImg(s);
        }

Организация обмена данными между формами в С#

Обмен данными между 2мя формами в С#.

Подготовка

В первой форме создадим несколько элементов как на картинке

Форма С#Для создания 2 формы необходимо зайти в мено Проект

Добавление формы в C#Добавляем элементы на форму как на рисунке ниже
Форма C#

Самый быстрый способ организации обмена данными между формами в С#

1. В панели  обозреватель решений выделяем 1 форму, затем правой кнопкой мыши и выберем пункт перейти к коду.

Перейти к коду ФормыМеняем у тех елементов формы к которым необходим доступ из другой формы с private на public. Должно получиться для нашей формы так:

private System.Windows.Forms.Button button1;
public System.Windows.Forms.TextBox textBox1;
private System.Windows.Forms.Label label1;
public System.Windows.Forms.TextBox textBox2;
private System.Windows.Forms.Label label2;

2. Напишем код вызова второй формы из первой при нажатии кнопки 1 формы

private void button1_Click(object sender, EventArgs e)
{
Form2 frm2 = new Form2();
frm2.Show(this);
}

3. Вторая Форма

получить данные из первой формы

private void button1_Click(object sender, EventArgs e)
{
Form1 frm1 = this.Owner as Form1;
textBox1.Text = frm1.textBox2.Text;
}

Записать данные в первую форму

private void button3_Click(object sender, EventArgs e)
{
Form1 frm1 = this.Owner as Form1;
frm1.textBox2.Text = textBox2.Text;
}

Как видно данные между формами передаются в обе стороны.