В диалоговом окне при установленном методе Multiselect, можно выделить папки и файлы и скопировать их в буфер обмена, при этом сами файлы и папки не копируются, а копируются их имена и пути расположения. Вставка из буфера обмена в текстовое поле покажет имена и пути.
//пути и имена папок и файлов из буфера обмена:
foreach (var i in Clipboard.GetFileDropList())
{
richTextBox1.AppendText("\n " + i.ToString() + " ");
}
Как перед закрытием окна скопировать выделенную область OpenFileDialog, к примеру имитацией Ctrl+C ??? (сама имитация нажатия Ctrl+C, мене известна.)
В диалоговом окне при установленном методе Multiselect, можно выделить папки и файлы и скопировать их в буфер обмена, при этом сами файлы и папки не копируются, а копируются их имена и пути расположения. Вставка из буфера обмена в текстовое поле покажет имена и пути.
//пути и имена папок и файлов из буфера обмена:
foreach (var i in Clipboard.GetFileDropList())
{
richTextBox1.AppendText("\n " + i.ToString() + " ");
}
Как перед закрытием окна скопировать выделенную область OpenFileDialog, к примеру имитацией Ctrl+C ??? (сама имитация нажатия, Ctrl+C мене известна.)
Никита Юдин, перетаскивать папки с файлами OpenfileDialog умеет НО как мне узнать то что я выделил для перетаскивания? (понятно что если кидать файлы и папки куда то, то там можно обработать drag&drop НО как узнать их до перетаскивания выделив их в самом OpenFileDialoge?)
первая ссылка не выбирает папки, возможно это происходит на Windows7 но на Windows10 не работает. я уже пробовал этот проект, выбирает только файлы, а папку выбирает с лева когда не выбран файл, по типу корневой каталог может отобразить когда в него заходишь, ЭТО НЕ ТО совсем НЕ ТО.
Вторую ссылку сейчас проверю.
Roman, у меня не запускается верхняя функция по этому я решил сделать для начала без функции, подскажите, что я делаю не так и что тут не хватает?
std::vector< int > ma = {1,2,3,4,5,6,7,8,9};
std::vector< int > mb = { 22,44,1,2,3,4,7,8,9 };
int ii;
ii= count_if(begin(ma), end(ma), [](int cc){
static set< int > mc(begin(mb), end(mb));
mc.find(cc) != mc.end();
});
возможно я не учел, что вопрос задает тот кто их не умеет задавать, иначе бы он получил ответ сам. Но если тот кто задет вопрос его не интересуют варианты ответов, то нет смысла такому "горе" начинающему отвечать, если только ты не зарабатываешь привилегии сайта, но и тут имеет смысл задуматься стоит ли оно того.
Roman, ВОПРОС СТОИТ НЕ ТАК. дан код и вопрос (А как то же самое сделать на С++ ?) там не только индексы, иначе тогда зачем (print(b))? если строка которую нужно пропарсить и так видна a = (" 10 20 45 16 70 20 ");
Павел Язовских, cout - это вывод в консоль, приведите пример, который тоже самое помещает в переменную string или System::String^. (я консоль редко использую)
вот так работает но нужно лябда
//----------------------------------------------------------------------------------------------
using namespace System::Threading::Tasks;
Int32 sis4;//глобальная переменная для любых действий.
//-----------------------------------------------------------------------------------------------
namespace dl2
{
public ref class myclass {
private:
Void dl2::myclass::metod1()//метод для запуска в другом потоке.
{
Volatile::Write(sis4, 8899988);//изменение глобальной переменной из потока, блокируя к ней память через Volatile.
}
public:
void dl2::myclass::metod()//метод запускает metod1() в отдельном потоке:
{
Task::Factory->StartNew(gcnew Action(gcnew dl2::myclass(), &dl2::myclass::metod1));
}
};
}
//--------------------------------------------------------------------------------------------------
dl2::myclass mc;//создаю объект.
mc.metod();//вызываю метод из класса который запускает метод в потоке.
//--------------------------------------------------------------------------------------------------
Вот так работает, но мне нужно чтоб лябды:
//----------------------------------------------------------------------------------------------
using namespace System::Threading::Tasks;
Int32 sis4;//глобальная переменная для любых действий.
//-----------------------------------------------------------------------------------------------
namespace dl2
{
public ref class myclass {
private:
Void dl2::myclass::metod1()//метод для запуска в другом потоке.
{
Volatile::Write(sis4, 8899988);//изменение глобальной переменной из потока, блокируя к ней память через Volatile.
}
public:
void dl2::myclass::metod()//метод запускает metod1() в отдельном потоке:
{
Task::Factory->StartNew(gcnew Action(gcnew dl2::myclass(), &dl2::myclass::metod1));
}
};
}
//--------------------------------------------------------------------------------------------------
dl2::myclass mc;//создаю объект.
mc.metod();//вызываю метод из класса который запускает метод в потоке.
//--------------------------------------------------------------------------------------------------
Даша Циклаури,
//========================================================================================
у меня получилось так, по нажатию кнопки:
namespace prim1//первое пространство имен.
{
Void metod1() {...}// это любая метод-функция для запуска в потоке task.
}
private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e)
{
Task::Factory->StartNew(gcnew Action(&prim1::metod1));//по нажатию на кнопку на форме все работает!!!
}
//========================================================================================
А, вот в самом методе я такую штуку не могу реализовать,
этот метод находится в другом пространстве имен,
и даже с методом из класс другого пространства имен не получается.
namespace prim2// второе пространство имен.
{
_________Void metod2()//другой метод из второго пространства имен.
________ {
___________Task::Factory->StartNew(gcnew Action(&prim1::metod1)); //не работает!!!!!!!!!!!!! ???????????????
________ }
}
//========================================================================================
Roman, НУЖНО Вложенные задачи:
var tok1 = Task.Factory.StartNew(() = > // внешняя задача (создание потока.)
{
//код для выполнения в потоке tok1.
var tok2 = Task.Factory.StartNew(() = > // вложенная задача(создание потока в потоке)
{
//код для выполнения во вложенном потоке tok2.
}, TaskCreationOptions.AttachedToParent);//это слово нужно если нужно чтоб поток зависел от внешнего потока.
});
Даша Циклаури, ЗАДАЧА НЕ РЕШЕНА! lambdas, нет поддержки в C ++ / CLI
это не лямбды функции.
Вложенные задачи:
var tok1 = Task.Factory.StartNew(() = > // внешняя задача (создание потока.)
{
//код для выполнения в потоке tok1.
var tok2 = Task.Factory.StartNew(() = > // вложенная задача(создание потока в потоке)
{
//код для выполнения во вложенном потоке tok2.
}, TaskCreationOptions.AttachedToParent);//это слово нужно если нужно чтоб поток зависел от внешнего потока.
});
Как перед закрытием окна скопировать выделенную область OpenFileDialog, к примеру имитацией Ctrl+C ??? (сама имитация нажатия Ctrl+C, мене известна.)