【问题标题】:Create label Click in InputBox在 InputBox 中创建标签点击
【发布时间】:2012-08-01 08:21:30
【问题描述】:

我有一个函数,private void sentEmail() in Form1。我想将该函数用于 InputBox 中的标签。

我使用的 InputBox 是这样的:http://www.csharp-examples.net/inputbox/

我新建一个类,添加InputBox的代码。

在 InputBox 中创建标签:

Label label2 = new Label();
label2.Text = mesaj;
label2.Cursor = Cursors.Hand;

现在我需要这样做:当 InputBox 出现时,当我点击label2 时,使用Form1 中的功能。 label2 是用于接收密码的文本,功能工作,但我需要在 InputBox 中使用该功能,但我不知道该怎么做。 我认为我需要创建一个新的 Handler,但我不知道如何。

【问题讨论】:

    标签: c# click label inputbox


    【解决方案1】:

    InputBox方法改为

    public static DialogResult InputBox(string title, string promptText, ref string value, Action labelClickCallback)
    

    并将该回调添加到 Click 事件。

    Label label2 = new Label();
    label2.Text = mesaj;
    label2.Cursor = Cursors.Hand;
    label2.Click += (s, e) => labelClickCallback(); // Create a new event handler
    

    当调用InputBox 方法时,您现在可以将方法传递给将在用户单击标签时调用的方法。像这样拨打InputBox

    InputBox("Title", "Text", ref result, sentEmail);
    

    【讨论】:

    • 非常感谢您!完美运行!
    【解决方案2】:

    Label 有一个 Click 事件。

    label2.Click += delegate {
        form1.sendEmail();
    }
    

    【讨论】:

    • 函数 sentMail 不在 Inputbox 中,在 Form1 中。不要以你的方式工作。 label2.Click += 委托 { sentEmail(); } - 错误: ;预计
    • @AnDr3yy 你没有说标签是否是在Form1 中创建的,我只是假设。查看更新。
    【解决方案3】:

    我建议您在其他类中使用SendMail() 方法,而不是在Form1 中,您可能想在其他地方使用它。

    public class MailController
    {
        public void SendEmail()
        {
            //Code
        }
    }
    

    在您的表单中,您只需在实例化包含它的类后调用它

    //Your form containing the InputBox
    private void Form1_Load(object sender, EventArgs e)
    {
        Label label2 = new Label();
        label2.Text = mesaj;
        label2.Cursor = Cursors.Hand;
    
        label2.Click += OnLabelClick;
    }
    
    private void OnLabelClick(object sender, EventArgs e)
    {
        MailController controller = new MailController();
        controller.SendMail();
    }
    

    【讨论】:

    • Tnx 的答案。我不尝试您的方法,因为 BigYellowCactus 的方法非常有效。但是 tnx !!
    • Glade 你解决了这个问题 ;)
    猜你喜欢
    • 2014-05-07
    • 1970-01-01
    • 1970-01-01
    • 2013-07-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多