Форум программистов, компьютерный форум, киберфорум
Наши страницы
C# Windows Forms
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
DTadescu
0 / 0 / 0
Регистрация: 18.10.2017
Сообщений: 20
1

Label не меняет текст при подключении флэшки

14.12.2018, 08:55. Просмотров 805. Ответов 2

Добрый день. Пробую записывать файлы на флешку по событию подключения USB, все функции работают, но строка уведомлений почему то не выводит первую строку ("Идет копирование.."). Следующее сообщение об окончании копирования нормально выводится. Пробовал выводить сообщения на отдельную форму, там ситуация не лучше. Подскажите, в чем может быть проблема.

Событие, на подключение флеш с кодом вывода сообщений:

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
protected override void WndProc(ref Message m)
        {
            base.WndProc(ref m);
            if (m.WParam.ToInt32() == 0x8000)
            {
                
                if (isRequest_now)
                {
                    isUSBConnected = true;
                }
                else
                {
                    timer1.Stop();
                     
                    status_label.Text = RefreshView(status_label, "Идет копирование файлов. Не отключайте USB-накопитель.");
                    Thread.Sleep(1000);
                    DataWrite.USBTransfer.WriteToUSB(config); //функция копирования файлов по USB
            
                    status_label.Text = RefreshView(status_label, "Копирование завершено. Отключите USB-накопитель.");
                    
                    timer1.Start();
 
                }
                
            }
 
            if (m.WParam.ToInt32() == 0x8004)
            {
               isUSBConnected = false;
                status_label.Text = RefreshView(status_label, status_mes);
            }
 
        }
 
       // метод проверки необходимости Invoke
          private string RefreshView(Label label, string value) 
        {
            Action action = () => label.Text = value;
 
            if (label.InvokeRequired)
            {
                label.Invoke(action);
            }
            else
            {
                action();
            }
            return label.Text;
 
        }
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.12.2018, 08:55
Ответы с готовыми решениями:

Определенные действия при подключении флэшки
if ( Message.Msg == WM_DEVICECHANGE && Message.WParam == 0x8000 ) { char DiskLabel; ...

Android label меняет размер текста при смене ориентации
Я заметил что текст названия приложения меняет свой размер при смене ориентации. Но в большинстве...

Чекбокс не отмечается при клике на текст <label>
Помогите, пожалуйста, определить, в чем причина проблемы. Нужно, чтобы чекбоксы отмечались по клику...

Label автоматически меняет имя
Здравствуйте. У меня вот вопросик. Есть игра, в исходнике Label подписано &quot;Набрано балов&quot;, когда...

Как вывести текст в Label при нажатии Button?
Как сделать метод чтобы при введении числа в textBox1 и введении знака в textBox2 и введении x в...

2
PoPsa85
755 / 517 / 224
Регистрация: 01.07.2018
Сообщений: 1,733
14.12.2018, 10:13 2
Лучший ответ Сообщение было отмечено DTadescu как решение

Решение

DTadescu,
C#
1
2
3
4
5
6
private async void copy()
{
   label1.Text = "Copy";
   await Task.Run(new Action(() => DataWrite.USBTransfer.WriteToUSB(config);)); 
   label1.Text = "Done";
}
2
DTadescu
0 / 0 / 0
Регистрация: 18.10.2017
Сообщений: 20
14.12.2018, 10:55  [ТС] 3
PoPsa85, Спасибо! До асинхронного программирования не добрался еще. Только ругался на синтаксис, переделал так:
C#
1
2
3
4
5
6
7
private async void copy()
        {
            Pause();
            _status_mes = "Идет копирование файлов. Не отключайте USB-накопитель.";
            await Task.Run(() => DataWrite.USBTransfer.WriteToUSB(config));
            _status_mes = "Копирование завершено. Отключите USB-накопитель.";
        }
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.12.2018, 10:55

Сделать так чтобы при подключении нулевого порта выполнялся один цикл кода а при подключении другого - другой
Как сделать так чтобы при подключении нулевого порта выполнялся один цикл кода, а при подключении...

Перенести текст с одного label на label в другом окне
Как перенести текст с label одного окна в label другого окна? ссылка на гитхаб: ...

При нажатии на кнопку нужно скрыть текст в Label и картинку в Image
Столкнулся вот с какой проблемой. Суть такова что при нажатии на кнопку нужно скрыть выведенный в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru