Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在C中自动点击按钮#_C#_Asp.net - Fatal编程技术网

C# 在C中自动点击按钮#

C# 在C中自动点击按钮#,c#,asp.net,C#,Asp.net,我需要在不实际单击按钮的情况下自动执行下面的按钮单击事件 请给我一个简单的解决办法 private void button4_Click(object sender, EventArgs e) { int i = 0, aResult = 0; int[] aLen = new int[1]; byte[] aUID = new byte[7]; byte[] NbTg = new byte[1]; b

我需要在不实际单击按钮的情况下自动执行下面的按钮单击事件

请给我一个简单的解决办法

   private void button4_Click(object sender, EventArgs e)
    {
        int i = 0, aResult = 0;
        int[] aLen = new int[1];
        byte[] aUID = new byte[7];
        byte[] NbTg = new byte[1];
        byte[] RData = new byte[64];
        byte[] RDataLen = new byte[1];
        byte[] InitData = new byte[64];
        String ValStr = "";

        aResult = aResult = PN_InListPassiveTarget(0, 0, 1, 0, 0, InitData, NbTg, RDataLen, RData);
        if (0 == aResult)
        {
            for (i = 0, ValStr = ""; i < RData[4]; i++)
                ValStr += RData[5 + i].ToString("X2");
            textBox1.Text = ValStr;

        }
        else
            MessageBox.Show("Please Hold Your Meal Card");
    }  
private void按钮4\u单击(对象发送者,事件参数e)
{
int i=0,aResult=0;
int[]aLen=新的int[1];
字节[]aUID=新字节[7];
字节[]NbTg=新字节[1];
字节[]RData=新字节[64];
字节[]RDataLen=新字节[1];
字节[]InitData=新字节[64];
字符串ValStr=“”;
aResult=aResult=PN_InListPassiveTarget(0,0,1,0,0,InitData,NbTg,RDataLen,RData);
如果(0==结果)
{
对于(i=0,ValStr=“”;i
您可以使用计时器在2秒内启动事件。您可以将NFC读卡器逻辑置于其自身的函数中,并让计时器从第一次单击开始调用该函数,直到成功读取该卡:

using System.Timers;

public partial class MainWin : Form
    {
        public MainWin()
        {
            InitializeComponent();
        }

        Timer nfcTimer;

        private void buttonStartNFC_Read_Click(object sender, EventArgs e)
        {
            try
            {
                nfcTimer = new Timer(2000)); \\ <- 2000 milliseconds is 2 seconds
                nfcTimer.Elapsed += new ElapsedEventHandler(readCard);
                nfcTimer.Enabled = true;

                buttonNFC.Enabled = false; \\ u probably want to disable the button
            }
            catch (Exception ex)
            {
                print("Exception in :" + ex.Message);
            }
        }

您可以在此处找到有关如何以编程方式调用按钮的单击事件的更多信息:

如果有一个事件将检测卡,您可以在那里设置一个计时器,使其在2秒后运行以执行此代码。
如果还需要通过单击按钮来运行代码,请将代码移动到一个方法并从两个位置调用它

为什么不使用这样的计时器呢?-

    // Create a timer with a two second interval.
    aTimer = new System.Timers.Timer(2000);
    // Hook up the Elapsed event for the timer. 
    aTimer.Elapsed += button4_Click;
    aTimer.Enabled = true;
已用事件的实际事件处理程序签名如下-

private static void OnTimedEvent(Object source, ElapsedEventArgs e)
{
    Console.WriteLine("The Elapsed event was raised at {0}", e.SignalTime);
}


但是
EventArgs
ElapsedEventArgs
的一个超类,因此您可以很好地使用它。

您可以在页面加载时执行此逻辑吗?什么应该触发这个逻辑?你能在这里给出一些关于自动化的细节吗?你可以根据需要人工触发这个事件。这个代码是为NFC阅读器编写的。。当NFC卡靠近设备时,单击按钮。这件事是工作。。然后读取NFC卡数据。。我需要每2秒钟运行一次按钮点击事件,而不点击按钮。为什么不使用计时器?它正在工作。。但是在readCard方法中有一个文本框来显示读取的数据,当读卡时出现错误,“System.Windows.Forms.dll中发生了类型为'System.InvalidOperationException'的异常,但未在用户代码中处理”。@HarshaEranga,很高兴听到它的工作。至于新的错误,你能发布一些代码吗?这样我就可以看一看,也许可以提供帮助?
private static void OnTimedEvent(Object source, ElapsedEventArgs e)
{
    Console.WriteLine("The Elapsed event was raised at {0}", e.SignalTime);
}