لماذا تحتاج الأزرار ليكون الضغط مرتين على العمل في هذا حوار مشروط؟
-
05-07-2019 - |
سؤال
ولدي هذا C # رمز:
public partial class Continue : Form
{
public Continue(string colourName)
{
InitializeComponent();
lblMessage.Text = String.Format("Do you wish to change the colour to {0}", colourName);
}
private void btnConfirm_Click(object sender, EventArgs e)
{
btnConfirm.DialogResult = DialogResult.OK;
}
private void btnCancel_Click(object sender, EventArgs e)
{
btnCancel.DialogResult = DialogResult.Cancel;
}
}
وأنه يعمل بشكل جيد، ولكن عندما يظهر مربع الحوار حتى أنه يتطلب مني أن انقر على زر مرتين لاستخدامه. هل لديها فكرة لماذا؟
المحلول
وتحتاج إلى تعيين this.DialogResult
بدلا من btnxxx.DialogResult
في انقر معالجات، أو تعيين btnxxx.DialogResult قبل معالجات.
وتعيين DialogResult النموذج على الزر قبل تشغيل أسلوب انقر، وبالتالي فإن المرة الأولى التي يتم تشغيل الحدث ترك DialogResult للنموذج في لا شيء، لكن في المرة الثانية يتم تعيينها إلى (الان مجموعة) DialogResult الزر .
لا تنتمي إلى StackOverflow