Я работаю над проектом для создания машины с пользовательским интерфейсом на Windows CE 5.0 встроенная система. Я не очень хорошо разбираюсь в форме Windows и C#. Вот почему я прошу вас о помощи.Модальный «диалог» usercontrol C#
Я использую пользовательский контроль вместо формы, потому что они делали странный переход на закрытие и показ. Поэтому я решил использовать несколько пользовательских элементов управления как полноэкранную вкладку в одной основной форме. Проблема в том, что я должен использовать пользовательский элемент управления с модальным поведением в некоторой ситуации. Я видел кучу кода для C#, но это было C# WPF или ASP.NET (я не знаю, если это то же самое). Итак, есть ли способ в C# создать пользовательский контроль, действующий как модальный диалог. Я alerady добавляю функцию showdialog, я просто не знаю, как блокировать родительскую функцию при ее вызове.
public abstract partial class cDialog : UserControl, Transparency_Background // Alpha
{
cDialog _mFather;
protected Bitmap _mBackgroundImage;
public cDialog()
{
_mBackgroundImage= new Bitmap(Properties.Resources.logo);
InitializeComponent();
btn_exit.Text = Fs.mMemory.GetVocabulary(eVocabulary.X);
}
private void cDialog_Paint(object sender, PaintEventArgs e)
{
e.Graphics.DrawImage(_mBackgroundImage, 0, 0);
}
protected virtual void CloseDialog(object sender, EventArgs e)
{
if (_mFather!= null)
{
_mFather.Show();
_mFather.TopLevelControl.Controls.Remove(this);
}
}
public virtual void ShowDialog(cDialog father)
{
_mFather = father;
if (_mFather!= null)
{
_mFather.TopLevelControl.Controls.Add(this);
this.BringToFront();
base.Show();
_mParent.Hide();
}
}
protected override void OnPaintBackground(PaintEventArgs e)
{
//Do nothing Double buffering See Alpha.cs
}
Извините за мой английский Спасибо заранее, Алекс.
Модальный диалог должен * выглядеть * как диалог, чтобы пользователь знал, что попытка активировать другие окна не может работать. Только использование Form.ShowDialog имеет смысл. Если вы хотите уловить пользователя в поле, просто установите для свойств Enabled значение false. –
Если я не могу использовать его в качестве диалога, есть ли другой способ остановить исполняемый код, пока пользовательский контроль не будет закрыт или не отключен? –