c ++ Как динамически добавить метку в групповую коробку и установить ее положение - PullRequest
0 голосов
/ 13 сентября 2018

Привет, ребята. Я хочу, чтобы пользователь выбрал список файлов (TXT-файл), и я хочу показать путь к этому файлу в групповом окне, я могу сделать это прекрасно в C #, но у меня возникли некоторые проблемы с C ++ \ Cli PSЯ работаю в сообществе Visual Studio 2017

это мой код:

openFileDialog1 = gcnew System::Windows::Forms::OpenFileDialog();
openFileDialog1->InitialDirectory = DefaultProgramPath;
openFileDialog1->FileName = "";
openFileDialog1->Filter = "ESA Files (*.esa)|*.esa|txt files (*.txt)|*.txt|All files (*.*)|*.*";
openFileDialog1->FilterIndex = 1;
openFileDialog1->RestoreDirectory = true;

if (openFileDialog1->ShowDialog() == System::Windows::Forms::DialogResult::OK)
{
    String^ toBeAdded= openFileDialog1->FileName;
    Label^job = gcnew  Label();
    job->Text = toBeAdded;

    job->Location.X = 150;
    job->Location.Y = 250;
    groupBox1->Controls->Add(job);
}

с этим кодом метка добавляется в групповое поле, но я не могу правильно установить в нем свою позицию

Спасибо за вашу помощь

1 Ответ

0 голосов
/ 14 сентября 2018

System.Drawing.Point - это тип значения (struct в C #, value class / value struct в C ++ / CLI), поэтому свойство Location возвращается копия его текущего местоположения. Чтобы обновить его, вам нужно установить весь тип значения сразу.

Point newLocation;
newLocation.X = 150;
newLocation.Y = 250;
job->Location = newLocation;
...