Модален диалог

1 отговора 67 прегледа
#1

Модален диалог

Някой може ли да ми помогне да разбера как се осъществява модален диалог във Visual C++ .NET. Проблемът е следният. Най-напред искам да отворя текстови файл и да присвоя данните съдържащи се в него в два масива, например чрез:

private: System::Void button1_Click(System::Object * sender, System::EventArgs * e)
{
listBox1->Items->Clear();

try
{

OpenFileDialog *fileChooser = new OpenFileDialog();
Windows::Forms::DialogResult result = fileChooser->ShowDialog();

// name of file containing data
String *fileName;

// exit event handler if user clicked Cancel
if ( result == DialogResult::Cancel )
return;

// get specified file name
fileName = fileChooser->FileName;

// show error if user specifies invalid data
if ( ( fileName->Equals( S"" ) ) )
MessageBox::Show( S"Invalid File Name", S"Error", MessageBoxButtons::OK, MessageBoxIcon::Error );

else
{
String* textFile = String::Concat( fileName );
}

StreamReader *reader = new StreamReader(fileName);
do
{
listBox1->Items->Add(reader->ReadLine());
}
while(reader->Peek() != -1);
}


catch(FileNotFoundException *ex)
{
listBox1->Items->Add(ex);
}

catch (System::Exception *e)
{
listBox1->Items->Add(e);
}

}




Едва след като изградя двата масива искам да извикам функция, която да представи данните графично върху формата, например така:



protected:

void OnPaint( PaintEventArgs *paintEvent )
{
__super::OnPaint( paintEvent ); // call base OnPaint method

// get graphics object
Graphics *graphicsObject = paintEvent->Graphics;
SolidBrush *brush = new SolidBrush( Color::Blue );
Pen *pen = new Pen( Color::Black );

for ( int count = 1; count <= 100; count++ )
{
graphicsObject->DrawEllipse( pen, count * 5, Math::Sin( count )*100, 7, 7 );
}

}



Тъй като бутоните очевидно се създава с помощта на същия този метод OnPaint, двете горенаписани функции се изпълняват едновременно. На мен ми е нужно обаче те да се извършат последователно. Много благодаря предварително, ако някой може да отдели малко време да ми обясни как става това във VC++.NET.

Отговор
в отговор на Modal #2

Re: Модален диалог

как се осъществява модален диалог

2b|~2b=?

Сигнатура!
Отговор