Я сталкиваюсь с той же проблемой с sts 3.8.4, поэтому я попробовал разные настройки, но не повезло, я переустанавливаю jdk снова, но попытался, но такую же проблему. Наконец, я скачал sts 3.8.2. Использование окон 8, 64 бит os. спасибо
Во-первых, создайте свой заставку как безграничную, неподвижную форму с вашим изображением на ней, настроенную на первоначальное отображение в центре экрана, по цвету, как вы хотите. Все это можно установить в дизайнере; в частности, вы хотите:
Затем вам нужно решить где его показать и куда его уволить. Эти две задачи должны выполняться с разных сторон основной логики запуска вашей программы. Это может быть в программе main () вашего приложения или, возможно, в обработчике нагрузки вашего основного приложения; везде, где вы создаете большие дорогие объекты, читаете настройки с жесткого диска и обычно занимаете много времени, чтобы делать вещи за кулисами, пока не отобразится основной экран приложения.
Затем все, что вам нужно сделать, это создайте экземпляр вашей формы, покажите () и сохраните ссылку на него во время инициализации запуска. После того, как ваша основная форма загрузится, нажмите «Закрыть» ().
Если ваш экран заставки будет иметь анимированное изображение на нем, окно также должно быть «двойным буфером», и вам нужно будет быть абсолютно уверенным, что вся логика инициализации происходит за пределами потока GUI (это означает, что вы не можете иметь основную логику загрузки в обработчике нагрузки mainform, вам придется создать BackgroundWorker или какую-либо другую поточную процедуру.
создать всплеск
private void timer1_Tick(object sender, EventArgs e)
{
counter++;
progressBar1.Value = counter *5;
// label2.Text = (5*counter).ToString();
if (counter ==20)
{
timer1.Stop();
this.Close();
}
}
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.BackColor = System.Drawing.SystemColors.GradientInactiveCaption;
this.ClientSize = new System.Drawing.Size(397, 283);
this.ControlBox = false;
this.Controls.Add(this.label2);
this.Controls.Add(this.progressBar1);
this.Controls.Add(this.label1);
this.ForeColor = System.Drawing.SystemColors.ControlLightLight;
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
this.Name = "Splash";
this.ShowIcon = false;
this.ShowInTaskbar = false;
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
this.ResumeLayout(false);
this.PerformLayout();
Затем в вашем приложении
sp = new Splash();
sp.ShowDialog();
Сначала вы должны создать форму с или без границы (для этих целей предпочтительнее border-less)
public class SplashForm : Form
{
Form _Parent;
BackgroundWorker worker;
public SplashForm(Form parent)
{
InitializeComponent();
BackgroundWorker worker = new BackgroundWorker();
this.worker.DoWork += new System.ComponentModel.DoWorkEventHandler(this.worker _DoWork);
backgroundWorker1.RunWorkerAsync();
_Parent = parent;
}
private void worker _DoWork(object sender, DoWorkEventArgs e)
{
Thread.sleep(500);
this.hide();
_Parent.show();
}
}
На Main вы должны использовать этот
static class Program
{
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new SplashForm());
}
}
В приведенном ниже примере из Telerik используется элемент управления ShapedForm, но измените его на обычную форму Windows. Это самый легкий и лучший способ, который я видел.
В CodeProject есть A довольно хороший экран заставки .
Он поставляется с
Автор недавно просмотрел и обновил код. Это действительно очень полезная работа, и это сотрудничество между многими разными разработчиками с хорошими идеями.
Попробуйте этот код
public partial class ssplashscreen : Form
{
public ssplashscreen()
{
InitializeComponent();
}
private void timer1_Tick(object sender, EventArgs e)
{
progressBar1.Increment(1);
if (progressBar1.Value == 100)
{
timer1.Stop();
this.Hide();
Form frm = new login();
frm.Show();
}
}
}
Ниже приведены некоторые ориентиры ...
Дайте это, и если вы застряли, вернитесь и задайте более конкретные вопросы, касающиеся ваших проблем
простое и простое решение для создания заставки
теперь установить таймер по таймеру:
private void timer1_Tick(object sender, EventArgs e)
{
progressBar1.Increment(1);
if (progressBar1.Value == 100) timer1.Stop();
}
добавить новое имя для использования формы «FORM-1» и используйте следующую команду в FORM 1.
note: Форма всплеска работает до открытия вашей формы1
using System.Threading;
public void splash()
{
Application.Run(new splash());
}
public partial class login : Form
{
public login()
{
Thread t = new Thread(new ThreadStart(splash));
t.Start();
Thread.Sleep(15625);
InitializeComponent();
enter code here
t.Abort();
}
}
Другие ответы здесь хорошо освещены, но стоит знать, что в Visual Studio встроена функциональность для экранов заставки. Если вы откроете свойства проекта для приложения формы Windows и посмотрите на вкладку «Приложение», Опция «Заставка:» внизу. Вы просто выбираете, какую форму в своем приложении вы хотите отображать в качестве экрана заставки, и он позаботится о том, чтобы показывать его, когда приложение запускается и скрывается, когда отображается ваша основная форма.
Вам все равно нужно установить (с правильными границами, позиционированием, калибровкой и т. д.)