如何在类中插入新函数(方法)?

时间:2016-03-25 01:21:24

标签: c#

从VB.NET过渡到C#2008。我真的学到了很多,但想问几个问题。

当我创建动态控件时,我需要向它们添加事件。所以我需要将这些事件插入到我的程序中。 IE ...

创建TextBox,然后需要添加KeyUp事件。我现在做的是在表单上放一个文本框,转到它的事件,双击我想要的事件,然后将函数重命名为我想要的,并从表单中删除文本框。

是否没有插入新功能(通过菜单或右键菜单?)或者是否可以学习所有参数?对象发送者非常简单,但EventArgs更改。

TIA:} DPRoberts

4 个答案:

答案 0 :(得分:0)

您可能需要了解delegateslambda expressions

这是一个可能有帮助的例子。

        for(int k = 0; k < 5; k++)
        {
            TextBox tb = new TextBox();
            tb.Name = "tb1";
            tb.Click += (obj, evntArgs) =>
            {
                //This is your click event code for this text
            };
        }

希望这有帮助!

答案 1 :(得分:0)

我希望我这样做,我不经常使用论坛等。但我的回答是复杂的评论。

最后几条评论至少接近我的需要。我将在这里放一些代码来帮助解释。但!!!这不是一个编码问题,所以任何谈论它都无济于事!这是一个IDE问题我正在寻找一个菜单项或工具栏按钮,允许我插入一个新功能(已经知道事件的正确参数。)这里是一个实例:

TextBox txtTemp = new TextBox();
txtTemp.KeyUp += fnKeyUp_txtQtySent;

txtTemp.Font = fArial10;
txtTemp.Location = new Point(nXPos, nYPos);
txtTemp.Tag = sTag;
txtTemp.Text = dbRDR.GetInt32(1).ToString();
txtTemp.TextAlign = HorizontalAlignment.Center;
txtTemp.Width = 48;
pnlContracts_Open.Controls.Add(txtTemp);

现在,下一步是创建/插入fnKeyUp_txtQtySent函数/方法。我目前以两种方式之一进行,从另一个KeyUp事件剪切/粘贴或我上面解释的5-6步骤方式。是否有一个菜单路径将执行此IE(插入&gt;事件&gt; TextBox&gt; KeyUp。然后插入一个空白的KeyUp事件准备重命名和编码。

感谢所有人的努力,我多年来一直是VB 3,4,5,6程序员并休息了一下,大约6年前回到.NET。所以这是我没有学会如何正确做的少数事情之一。

:} DPR

答案 2 :(得分:0)

希望对此有所帮助。如果我理解正确,你想创建一个处理程序&#34;自动&#34;这样你就可以收到适当的事件参数。

当您输入对象的名称,然后输入事件的名称,然后是+=

TextBox.KeyUp += 标签 标签

完成+=部分后,

按Tab键。这将创建一个具有正确参数类型的处理程序方法。

输入的另一个技巧,例如:

TextBox.KeyUp += (a, b) => { //this is an empty function block }

然后将鼠标悬停在a和/或b上,以查看其推断类型的工具提示。通常aobject(事件的发件人)而bEventArgs的某个子类,但很多时候你甚至不需要使用反正的论点。

here you have a step-by-step指导如何实现事件和处理程序,以备不时之需。

答案 3 :(得分:0)

谢谢大家的努力,特别感谢Ronan!使用关键字&#34;生成方法&#34;来自罗南,我找到了我需要的东西。似乎VS 2008没有快捷键ctrl + K + M或右键菜单来执行此操作。我安装了VS 2012,他们都在那里。

因为我正在将VB语言改为C#,所以也可以轻松切换版本。经过多年的剪切/粘贴后,它看起来很棒。我找到了一个包含快捷方式列表的网页,上面提到的那个也没有出现在2015年,2012年和2013年。

再次感谢,我认为这个问题得到了解答。

:} DPRoberts