Форум программистов, компьютерный форум, киберфорум
C++/CLI Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/8: Рейтинг темы: голосов - 8, средняя оценка - 4.75
27 / 24 / 1
Регистрация: 26.07.2011
Сообщений: 144

Выполнение проверки в openFileDialog

28.03.2012, 11:43. Показов 1565. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый вечер, требуется помощь!
Как написать проверку, чтобы при нажатии на кнопку открыть я открыл один файл, его имя и путь записались в comboBox, опять нажал на ту же кнопочку открыть и выбрал другой файл, но чтобы старое значение comboBox очистилось, а новое имя и путь в него добавились???

То что имеется у меня:
C++
1
2
3
4
5
6
7
8
String^ path;
if(openFileDialog1->ShowDialog() == System::Windows::Forms::DialogResult::OK)
      {
         System::IO::StreamReader ^ sr = gcnew System::IO::StreamReader(openFileDialog1->FileName);
         path = openFileDialog1->FileName;
                 comboBox1->Items->Add(path);
                 sr->Close();
      }
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
28.03.2012, 11:43
Ответы с готовыми решениями:

Выполнение удаленной проверки достоверности
Хочу сделать удаленную проверку достоверности относительно введенного имени/названия. В контроллере создаю метод действия ...

Выполнение php после проверки формы на js
Есть такой код, он выполняет проверку полей формы, не понимаю как сделать чтобы после успешной проверки полей их значения передавались в...

Выполнение проверки принадлежности объекта определённому сектору
Задача имеется следующая: есть компас и есть четыре сектора. Угол каждого сектора = 90°, соответственно у каждого есть свои левая и правая...

4
 Аватар для defer
577 / 256 / 18
Регистрация: 29.11.2010
Сообщений: 868
28.03.2012, 11:51
а зачем comboBox, если у вас только один файл

Добавлено через 2 минуты
C++
1
2
3
path = openFileDialog1->FileName;
comboBox1->Items->Clear();
comboBox1->Items->Add(path);
0
27 / 24 / 1
Регистрация: 26.07.2011
Сообщений: 144
28.03.2012, 11:53  [ТС]
Ну можно в textBox записывать.
comboBox я буду использовать в дальнейшем. Реальная ситуация более сложная, а мне нужен лишь простой пример, чтобы от него оттолкнуться.
0
 Аватар для defer
577 / 256 / 18
Регистрация: 29.11.2010
Сообщений: 868
28.03.2012, 11:57
тогда лучше так

C++
1
2
3
path = openFileDialog1->FileName;
comboBox1->Items->RemoveAt(0);
comboBox1->Items->Insert(0,path);
0
27 / 24 / 1
Регистрация: 26.07.2011
Сообщений: 144
28.03.2012, 18:46  [ТС]
И что нет никакой проверки типа если открыть новый файл, то комбобокс очищается и ему передается значение уже нового имени и пути?

Добавлено через 6 минут
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
      this->openFileDialog1->InitialDirectory = "c:\\";
      this->openFileDialog1->Filter = "Excel 2003 files(*.xls)|*.xls|Excel 2007-2010(*.xlsx)|*.xlsx";
      this->openFileDialog1->RestoreDirectory = true;
      double yach2, yach3, yach4, yach5, yach6;
      double diametr2, diametr3, diametr4, diametr5, diametr6;
      String^ path;
      if(openFileDialog1->ShowDialog() == System::Windows::Forms::DialogResult::OK)
      {
         System::IO::StreamReader ^ sr = gcnew System::IO::StreamReader(openFileDialog1->FileName);
         path = openFileDialog1->FileName;
             Microsoft::Office::Interop::Excel::Application^ xla = gcnew Microsoft::Office::Interop::Excel::ApplicationClass();
             Workbook^ wb = xla->Workbooks->Open(path,
                     Type::Missing, Type::Missing, Type::Missing, Type::Missing, 
                     Type::Missing, Type::Missing, Type::Missing, Type::Missing, 
                     Type::Missing, Type::Missing, Type::Missing, Type::Missing, 
                     Type::Missing, Type::Missing);
             Worksheet^ ws = safe_cast<Worksheet^>(xla->ActiveSheet);
             xla->Visible = false;
             yach2 = Convert::ToSingle(ws->Range["A2", Type::Missing]->Value2);
             yach3 = Convert::ToSingle(ws->Range["A3", Type::Missing]->Value2);
             yach4 = Convert::ToSingle(ws->Range["A4", Type::Missing]->Value2);
             yach5 = Convert::ToSingle(ws->Range["A5", Type::Missing]->Value2);
             yach6 = Convert::ToSingle(ws->Range["A6", Type::Missing]->Value2);
             this->comboBox2->Items->Add((floor(yach2*100)/100).ToString());
             this->comboBox2->Items->Add((floor(yach3*100)/100).ToString());
             this->comboBox2->Items->Add((floor(yach4*100)/100).ToString());
             this->comboBox2->Items->Add((floor(yach5*100)/100).ToString());
             this->comboBox2->Items->Add((floor(yach6*100)/100).ToString());
             diametr2 = Convert::ToSingle(ws->Range["E2", Type::Missing]->Value2);
             diametr3 = Convert::ToSingle(ws->Range["E3", Type::Missing]->Value2);
             diametr4 = Convert::ToSingle(ws->Range["E4", Type::Missing]->Value2);
             diametr5 = Convert::ToSingle(ws->Range["E5", Type::Missing]->Value2);
             diametr6 = Convert::ToSingle(ws->Range["E6", Type::Missing]->Value2);
             label49->Text = diametr2.ToString();
             label50->Text = diametr3.ToString();
             label51->Text = diametr4.ToString();
             label52->Text = diametr5.ToString();
             label53->Text = diametr6.ToString();
             xla->Quit();
             sr->Close();
      }
короче говоря, вот мой код, в кратце чё он делает: После выбора экселевского файла он загружает значение его ячеек в comboBox. Что нужно мне: Ну допустим загрузил я один файл, выгрузились в comboBox значения его ячеек, а теперь мне нужно загрузить уже другой файл, но чтобы значения его ячеек стояли на месте первых, а то он при загрузке каждого последующего файла добавляет и добавляет в comboBox значения ячеек не стирая предыдущие.

Добавлено через 3 часа 28 минут
Что, больше ни у кого нет мыслей??? Ребята, выручайте!

Добавлено через 2 часа 34 минуты
Всё ещё очень и очень актуально!

Добавлено через 36 минут
Решение найдено методом различных переборов и вот оно:

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
comboBox2->Items->Clear();
this->openFileDialog1->InitialDirectory = "c:\\";
          this->openFileDialog1->Filter = "Excel 2003 files(*.xls)|*.xls|Excel 2007-2010(*.xlsx)|*.xlsx";
          this->openFileDialog1->RestoreDirectory = true;
          double yach2, yach3, yach4, yach5, yach6;
          double diametr2, diametr3, diametr4, diametr5, diametr6;
          String^ path;
          if(openFileDialog1->ShowDialog() == System::Windows::Forms::DialogResult::OK)
      {
                 System::IO::StreamReader ^ sr = gcnew System::IO::StreamReader(openFileDialog1->FileName);
                 path = openFileDialog1->FileName;
                         Microsoft::Office::Interop::Excel::Application^ xla = gcnew Microsoft::Office::Interop::Excel::ApplicationClass();
                         Workbook^ wb = xla->Workbooks->Open(path,
                                         Type::Missing, Type::Missing, Type::Missing, Type::Missing, 
                                         Type::Missing, Type::Missing, Type::Missing, Type::Missing, 
                                         Type::Missing, Type::Missing, Type::Missing, Type::Missing, 
                                         Type::Missing, Type::Missing);
                         Worksheet^ ws = safe_cast<Worksheet^>(xla->ActiveSheet);
                         xla->Visible = false;
                         yach2 = Convert::ToSingle(ws->Range["A2", Type::Missing]->Value2);
                         yach3 = Convert::ToSingle(ws->Range["A3", Type::Missing]->Value2);
                         yach4 = Convert::ToSingle(ws->Range["A4", Type::Missing]->Value2);
                         yach5 = Convert::ToSingle(ws->Range["A5", Type::Missing]->Value2);
                         yach6 = Convert::ToSingle(ws->Range["A6", Type::Missing]->Value2);
                         this->comboBox2->Items->Add((floor(yach2*100)/100).ToString());
                         this->comboBox2->Items->Add((floor(yach3*100)/100).ToString());
                         this->comboBox2->Items->Add((floor(yach4*100)/100).ToString());
                         this->comboBox2->Items->Add((floor(yach5*100)/100).ToString());
                         this->comboBox2->Items->Add((floor(yach6*100)/100).ToString());
                         diametr2 = Convert::ToSingle(ws->Range["E2", Type::Missing]->Value2);
                         diametr3 = Convert::ToSingle(ws->Range["E3", Type::Missing]->Value2);
                         diametr4 = Convert::ToSingle(ws->Range["E4", Type::Missing]->Value2);
                         diametr5 = Convert::ToSingle(ws->Range["E5", Type::Missing]->Value2);
                         diametr6 = Convert::ToSingle(ws->Range["E6", Type::Missing]->Value2);
                         label49->Text = diametr2.ToString();
                         label50->Text = diametr3.ToString();
                         label51->Text = diametr4.ToString();
                         label52->Text = diametr5.ToString();
                         label53->Text = diametr6.ToString();
                         xla->Quit();
                         sr->Close();
      }
Очистка именно перед кодом диалога!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
28.03.2012, 18:46
Помогаю со студенческими работами здесь

Выполнение условия после проверки нескольких диапазонов
есть несколько n-диапазонов x1-y1,x2-y2,xn-yn.Если наше число не попадает ни в один диапазон то условие выполняется.как можно реализовать...

Какие проверки (кроме проверки неравенства делителя нулю) нужно выполнять перед делением
Добрый вечер. Подскажите, какие проверки (кроме проверки неравенства делителя нулю) нужно выполнять перед операций div, чтобы избежать...

Создать скрипты для обновления системы, проверки её на вирусы, дефрагментации диска и проверки его на ошибки
Требуется создать батники, которые бы осуществляли запуск 1)обновления системы 2)проверку на вирусы 3)дефрагментацию диска ...

Написать пакетный файл для запуска утилиты проверки диска и вывода в файл статистики проверки
Написать пакетный файл для запуска утилиты проверки диска и вывода в файл статистики проверки

Возможно ли: выполнение подпрограммы в отдельном процессе, одновременное выполнение двух подпрограмм?
Всех приветствую :handshake: Пример @echo off call :PROG1 call :PROG2 exit /b :PROG1


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru