Как мне показать новую форму из usercontrol? - PullRequest
0 голосов
/ 11 февраля 2012

Я делаю usercontrol, который является файловым менеджером (вырезать, копировать, вставить и т. Д.)
, поэтому при перемещении / копировании файлов ... мне пришлось показывать окно сообщения, когда файл уже существует ... дляпозвольте пользователю подтвердить перезапись или отменить .. но мне нужно 4 кнопки

[ДА] [ДА ВСЕМ] [НЕТ] [ОТМЕНА]

, поэтому ясделал новую форму под названием «MyMessageBox», которая содержит 4 кнопки и метку.
моя проблема заключается в .. в (userControl1.cs) я не могу инициализировать форму , например:

MyMessageBox msgbox = new MyMessageBox("overwrite file ?");

1 Ответ

0 голосов
/ 11 февраля 2012

Прежде всего вам необходимо убедиться, что ваш usercontrol имеет видимость формы, которую вы создали (т.е. если ваша форма находится в другом пространстве имен или проекте, вам нужно будет использовать оператор using или добавить ссылку на проект для того, чтобы ваш usercontrol, чтобы иметь возможность использовать его.) и что ваш конструктор - это то, о чем вы думаете, как предполагает М. Бэбкок. Вы можете попробовать что-то вроде этого

UserControl:

public partial class UserControl1 : UserControl
{
    MyMessageBox msgbox; 
    public UserControl1()
    {
        InitializeComponent();
    }

    private void button1_Click(object sender, EventArgs e)
    {
        msgbox  = new MyMessageBox("Overwrite File ?");
        msgbox.ShowDialog();
    }
}

CustomMessageBox:

public partial class MyMessageBox : Form
{
    public MyMessageBox( string Message)
    {
        InitializeComponent();
        label1.Text = Message;
    }

}

Что даст вам такой результат.

enter image description here

...