Member 12866713 Ответов: 3

Когда я вызываю другую форму windows, она отображается пустой


Итак, в настоящее время я пишу простое приложение для друга, просто чтобы продемонстрировать криптографию и объяснить, как шифрование работает на обычных компьютерах.

Однако я столкнулся с проблемой: когда я пытаюсь вызвать форму, которая расшифровывает данные, она оказывается пустой.

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

Итак, я попробовал использовать метод .show (), который я использовал во всех моих других формах, но теперь форма становится пустой.

Ниже приведен код, который я пытался использовать:

Первая форма - я бы нажал кнопку, чтобы вызвать форму/окно расшифровки:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Media;

namespace CryptExample
{

    //Form 1

    public partial class cryptMsg : Form
    {
        public cryptMsg()
        {
            InitializeComponent();
        }

        private void pictureBox3_Click(object sender, EventArgs e)
        {
            cryptUnlock showDecrypt = new cryptUnlock();
            showDecrypt.Show();
        }

        private void label2_Click(object sender, EventArgs e)
        {
            cryptUnlock showDecrypt = new cryptUnlock();
            showDecrypt.Show();
        }
    }
}


Вторая форма-окно расшифровки

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Security;
using System.Security.Cryptography;
using System.IO;
using System.Net;
using Microsoft.Win32;
using System.Runtime.InteropServices;
using System.Text.RegularExpressions;

namespace CryptExample
{
	//Form 2
	
    public partial class cryptUnlock : Form
    {
    	public cryptUnlock()
        {
            InitializeComponent();
            //Add in decryption stuff later
        }
    }
}

[no name]

Ладно... и? Может быть, там и показывать нечего? Не уверен, что ты думаешь, мы можем тебе сказать. Ну, знаешь, не видеть свой код и все такое.

Member 12866713

Добавлено в код, согласно запросу.

[no name]

Хорошо, учитывая, что ваша форма cryptUnlock ничего не делает, не должно быть ничего удивительного в том, что форма пуста.

Member 12866713

CryptUnlock был разработан (визуально), проблема в том, что когда я запускаю приложение, форма, которая должна появиться (CryptUnlock), не появляется, и вместо этого появляется пустая форма (аналогично этому, но не имеет текстового заголовка: http://3.bp.blogspot.com/-Kgd5lik-Txk/UfHsJ_fEEPI/AAAAAAAAAD0/Zmk7OO1ytaY/s1600/05.png ).

Извините, если я недостаточно ясно выразился в начале темы.

Member 12866713

Форма не должна ничего делать (пока), так как я все еще пишу функцию расшифровки. Просто чтобы было более понятно; я уже разработал макет формы (графически).

Проблема в том, что когда я пытаюсь вызвать свою графически оформленную форму (CryptUnlock), приложение просто показывает "пустую форму" (аналогично этому, но пустая форма не имеет текстового заголовка: http://3.bp.blogspot.com/-Kgd5lik-Txk/UfHsJ_fEEPI/AAAAAAAAAD0/Zmk7OO1ytaY/s1600/05.png ).

[no name]

Вероятно, вы создаете исключение в своем методе InitializeComponent. Запуск вашего кода думал, что отладчик скажет вам, что происходит.

Member 12866713

Просто запустите приложение через отладчик, и оно работает без каких-либо проблем (предупреждений или ошибок).

[no name]

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

3 Ответов

Рейтинг:
5

Member 12866713

Я забыл добавить следующий код в свою форму расшифровки (CryptUnlock);

public cryptUnlock()
        {
            InitializeComponent();
        }


Рейтинг:
0

OriginalGriff

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


Member 12866713

Привет OriginalGriff,

Он был скомпилирован и запущен без каких-либо предупреждений или ошибок в консоли. Что я имел в виду под "отображается пустым", так это то, что форма появляется со всеми элементами управления (аналогично этому, кроме того, что форма не имеет текстового заголовка: http://3.bp.blogspot.com/-Kgd5lik-Txk/UfHsJ_fEEPI/AAAAAAAAAD0/Zmk7OO1ytaY/s1600/05.png ), но это не та форма, которую я создал внутри дизайнера.

Member 12866713

Привет OriginalGriff,

Он был скомпилирован и запущен без каких-либо предупреждений или ошибок в консоли. То, что я имел в виду под "отображается пустым", заключается в том, что форма появляется со всеми элементами управления (аналогично этому: http://3.bp.blogspot.com/-Kgd5lik-Txk/UfHsJ_fEEPI/AAAAAAAAAD0/Zmk7OO1ytaY/s1600/05.png ), но это не та форма, которую я создал внутри дизайнера.

OriginalGriff

Ладно, значит, это вовсе не" пустой бланк " - кроме самого .PNG-файл показывает ... пустой бланк без каких-либо элементов управления!
В каком смысле это "не та форма, которую вы создали в конструкторе"?
Что произошло, когда вы использовали отладчик?
Помни-я не вижу, что ты придумал, поэтому понятия не имею, как это должно выглядеть.

Member 12866713

Привет OriginalGriff,

Это, как форма (cryptUnlock) должен выглядеть следующим образом: http://i.imgur.com/c7AXsQL.png

Однако, когда я пытаюсь вызвать форму, она выглядит примерно так: http://3.bp.blogspot.com/-Kgd5lik-Txk/UfHsJ_fEEPI/AAAAAAAAAD0/Zmk7OO1ytaY/s1600/05.png

OriginalGriff

Ну, а второй действительно выглядит как пустая форма по умолчанию, без каких-либо изменений. Так... что произошло, когда вы запустили отладчик? Какие элементы управления он добавил в сгенерированный дизайнером код, когда вы шагнули вперед во время выполнения?

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

Рейтинг:
0

#realJSOP

Попробуй ShowDialog() вместо.

С помощью Show() делает его немодальной формой, и он, вероятно, стоит за вашей основной формой.


Member 12866713

Привет Джон,

Попробовал это сделать, но возникает та же проблема (пустая форма).