sharat naik Ответов: 2

Как загрузить несколько форм одну за другой ?


У меня есть 3 формы,такие как form1, form2,form3
каждая форма будет загружаться одна за другой каждые 10 секунд .

Пожалуйста, помогите мне.

Что я уже пробовал:

Программы.в CS
.........................

программа статического класса
{
публичный статический RadForm1 RadForm1 = нуль;
публичный статический RadForm2 RadForm2 = нуль;
публичный статический RadForm3 RadForm3 = нуль;
публичный статический флаг int = 0;
/// <резюме>
///
[STAThread]
статический недействительным Главная()
{

Приложение.EnableVisualStyles();
Приложение.SetCompatibleTextRenderingDefault(false);

Thread splashThread = Новый Поток(new ThreadStart(
делегат
{
RadForm1 = новый RadForm1();
RadForm1.Size = новая система.Рисование.Размер(1365, 739);
Application.Run(RadForm1);
}
));

брызгун.SetApartmentState(ApartmentState.STA);
брызгун.Начать();


RadForm2 = новый RadForm2();
RadForm2.Size = Экран.Первичный экран.WorkingArea.Размер;
RadForm2.Load += новый EventHandler(RadForm1_Load);
Application.Run(RadForm2);

RadForm3 = новый RadForm3();
RadForm3.Size = Экран.Первичный экран.WorkingArea.Размер;
Радформ3.Load += new EventHandler(RadForm2_Load);
Application.Run(RadForm3);

}
RadForm1_Load статический недействительным(объект отправителя, EventArgs в электронной)
{
if (RadForm1 == null)
{
вернуть;
}
Радформ1.Invoke(new Action(RadForm1.Close));
RadForm1.Утилизировать();
RadForm1 = null;
}
RadForm2_Load статический недействительным(объект отправителя, EventArgs в электронной)
{
if (RadForm2 == null)
{
вернуть;
}
RadForm2.Invoke(новое действие(RadForm2.Close));
RadForm2.Утилизировать();
RadForm2 = null;
}
}

и во втором классе................

общественные RadForm2()
{
метод InitializeComponent();
Нить.Сон(5000);
этот.StartPosition = FormStartPosition.CenterScreen;
}

BillWoodruff

Если вы используете Telerik, почему бы не воспользоваться их поддержкой ?

Вам нужно описать то, что вы хотите более подробно. Взаимодействует ли пользователь с этой серией форм, отображаемых одна за другой: собираются ли и хранятся ли какие-либо данные или передаются в следующую форму ?

BillWoodruff

"Я хочу, чтобы все формы скользили( например, слайд-шоу изображений)" Как вы думаете, почему вы должны использовать для этого несколько форм ? Почему бы не использовать одну форму, управляющую серией панелей ?

sharat naik

Потому что я делаю проект по текстилю, в котором доступно более 30 форм, и каждая форма имеет все детали оборудования и производственные детали. эти детали отображаются на 50-дюймовом мониторе.
если я использовал панели, то сложнее настроить все разные экраны, и мне требовался полноэкранный дисплей..
спасибо
пожалуйста предложите мне

sharat naik

у меня есть обновленный код , в котором он будет идти в 1-ю и 2-ю форму, как идти в 3-ю форму

#realJSOP

Он удалил свои комментарии к моему ответу, и я собирался сказать это. Использование нескольких форм не является правильным подходом.

BillWoodruff

Вам нужно отредактировать свой исходный пост, чтобы отразить новую информацию о том, что вы делаете. Никто здесь не будет "играть в детектива", пытаясь выяснить, что вы делаете.

Если вы используете функции Telerik RadForms, которые не являются общими для стандартных форм Win, вам следует обратиться за поддержкой к Telerik.

Это ошибка, чтобы реализовать это с помощью ряда форм ! Панели также могут отображаться в полноэкранном режиме.

sharat naik

я хочу его в winform или telerik

2 Ответов

Рейтинг:
9

#realJSOP

Вы должны быть в состоянии moify этот код, чтобы делать то, что вы хотите:

Несколько последующих "основных" форм в приложениях C# [^]


sharat naik

я пробовал, но это не пойдет на вторую страницу,
я хочу, чтобы form1 загружался в течение 10 секунд, а через 10 секунд form1 закрывался и form2 загружался.
Каждые 10 секунд загружается каждая страница..

#realJSOP

Тогда ваш код неверен. Мы не сможем вам помочь, если вы не покажете нам свой код.

sharat naik

у меня есть обновленный код , в котором он будет идти в 1-ю и 2-ю форму, как идти в 3-ю форму

Рейтинг:
19

#realJSOP

Ну, если предположить, что вы достаточно опытны в разработке winforms, вот простой пример, который я собрал примерно за 10 минут. Первая форма for отображается в течение 10 секунд, а затем закрывается, после чего автоматически открывается 2-я форма.

Шаг 1 - Создайте новое приложение winforms (оно уже будет иметь "Form1"). Я добавил в форму кнопки " ОК " и "отмена". но тебе это и не нужно.

Шаг 2 - Добавьте новую форму ("Form2").

Шаг 3 - в program.cs измените основную функцию так, чтобы она выглядела следующим образом:

[STAThread]
static void Main()
{
    Application.EnableVisualStyles();
    Application.SetCompatibleTextRenderingDefault(false);
    Form1 f1 = new Form1();
    Application.Run(f1);
    if (f1.DialogResult== DialogResult.OK)
    {
        Form2 f2 = new Form2();
        Application.Run(f2);
        f2.Activate();
                
    }
}


Шаг 4 - это ваш код Form1

public partial class Form1:Form
{
    int dismiss = 10000;
    int elapsed = 0;
    Timer timer;
    public Form1()
    {
        InitializeComponent();
        timer = new Timer(){ Interval = 50, Enabled=true };
        timer.Tick += timer_Tick;
    }

    void timer_Tick(object sender,EventArgs e)
    {
        elapsed += timer.Interval;
        if (elapsed >= dismiss)
        {
            button1.PerformClick();
        }
    }

    private void button2_Click(object sender,EventArgs e)
    {
        DialogResult = DialogResult.Cancel;
        this.Close();
    }

    private void button1_Click(object sender,EventArgs e)
    {
        DialogResult = DialogResult.OK;
        this.Close();
    }

    private void Form1_FormClosing(object sender,FormClosingEventArgs e)
    {
        timer.Enabled = false;
        timer.Dispose();

    }
}


Таймер может быть слишком детализирован, но события таймера-это события с самым низким приоритетом в windows, и они не гарантированно обрабатываются в загруженной системе. Я бы рекомендовал использовать для этого другую технику, но для целей примера она подходит.


BillWoodruff

далеко человек ! Я сомневаюсь, что ОП здесь (очевидно, используя Telerik) имеет четкое представление о том, чего они хотят.

BillWoodruff

+5 Вы дали оператору то, что он просил !