Я использую Visual Studio 2010 Ultimate, и я пытаюсь преобразовать некоторые изображения, используя индикатор выполнения и две метки, но текст обеих меток не отображается, а программа просто отображает метки на белом фоне.
ps Задний цвет меток - "Контроль" (не прозрачный)
У меня есть две формы, 1-я форма "Основная" и форма "ProgressDialog"
главная форма, когда я нажимаю кнопку «Сохранить»
//copy the filenames to a new array to sort them
string[] FileNames = openDialog.FileNames;
Array.Sort(FileNames);
//create an instance of my progress dialog
ProgressDialog progress = new ProgressDialog(this, 100/FileNames.Length);
progress.ShowProgress();
//save all the files in the array
for (int i = 0; i < FileNames.Length; i++)
{
//call the SaveImage method
SaveImage(FileNames[i], 597, 412, Fill);
//increase the progresbar and set the label text of the progress dialog to the filename
progress.Increase(FileNames[i]);
}
progress.Close();//close progress dialog and re-enable the main form
... и вот код моей формы «ProgressDialog»:
Bar: имя индикатора выполнения
Комментарий: название метки с путем изображения в виде текста
private Form SenderForm;// the "Main" form
private int Step; //value to increase in the progress bar
public ProgressDialog(Form sender, int step)//constructor
{
InitializeComponent();
SenderForm = sender;
Step = step;
}
//disable cose button
private const int CP_NOCLOSE_BUTTON = 0x200;
protected override CreateParams CreateParams
{
get
{
CreateParams myCp = base.CreateParams;
myCp.ClassStyle = myCp.ClassStyle | CP_NOCLOSE_BUTTON;
return myCp;
}
}
//re-enable the "Main" form
private void ProgressDialog_FormClosed(object sender, FormClosedEventArgs e)
{
SenderForm.Enabled = true;
SenderForm.Activate();//activate form
}
//increase the value of the progressbar
public void Increase( string comment=null, int step=0)
{
//if step is 0 -> use the Step of the constructor
if (step==0) step = Step;
//if the comment (the current file name) is != of null
if (comment!=null)
Comment.Text = comment;//use the comment of the parameter
//increase progressbar
Bar.Value += step;
}
//show "ProgrssDialog" form
public void ShowProgress()
{
this.Show();
SenderForm.Enabled = false;//disable the main form
}