我如何使用2个按钮来做同样的事情

时间:2016-06-08 16:28:53

标签: c#

嘿,我有点新编码我想知道如何使用两个按钮来执行相同的事情,只有第一个按钮工作第二个没有#t 代码:

 private void button1_Click(object sender, EventArgs e)
    {
        Send(richTextBox1.Text);
    }


    private void button2_Click(object sender, EventArgs e)
    {
        Send(textBox1.Text);
    }

发送东西:

void Send(string command)
    {
        try
        {
            callbytes = BitConverter.GetBytes(cbuf_address);
            if(command == "")
            {
                MessageBox.Show("You must enter a command before pressing Send!", "Error", MessageBoxButtons.OK);
            }
            else
            {
                if(cbuf_addtext_alloc == IntPtr.Zero)


                {
                    cbuf_addtext_alloc = VirtualAllocEx(hProcess, IntPtr.Zero, (IntPtr)cbuf_addtext_wrapper.Length, AllocationType.Commit | AllocationType.Reserve, MemoryProtection.ExecuteReadWrite);
                    commandbytes = System.Text.Encoding.ASCII.GetBytes(command);
                    commandaddress = VirtualAllocEx(hProcess, IntPtr.Zero, (IntPtr)(commandbytes.Length), AllocationType.Commit | AllocationType.Reserve, MemoryProtection.ExecuteReadWrite);
                    int bytesWritten = 0;
                    int bytesWritten2 = commandbytes.Length;
                    WriteProcessMemory(hProcess, commandaddress, commandbytes, commandbytes.Length, out bytesWritten2);

                    Array.Copy(BitConverter.GetBytes(commandaddress.ToInt64()), 0, cbuf_addtext_wrapper, 9, 4);
                    Array.Copy(callbytes, 0, cbuf_addtext_wrapper, 16, 4);

                    WriteProcessMemory(hProcess, cbuf_addtext_alloc, cbuf_addtext_wrapper, cbuf_addtext_wrapper.Length, out bytesWritten);

                    IntPtr bytesOut;
                    CreateRemoteThread(hProcess, IntPtr.Zero, 0, cbuf_addtext_alloc, IntPtr.Zero, 0, out bytesOut);

                    if(cbuf_addtext_alloc != IntPtr.Zero && commandaddress != IntPtr.Zero)
                    {
                        VirtualFreeEx(hProcess, cbuf_addtext_alloc, cbuf_addtext_wrapper.Length, FreeType.Release);
                        VirtualFreeEx(hProcess, commandaddress, cbuf_addtext_wrapper.Length, FreeType.Release);
                    }
                }
                cbuf_addtext_alloc = IntPtr.Zero;
            }
        }
        catch(Exception ex)
        {
            MessageBox.Show(ex.ToString(), "Error", MessageBoxButtons.OK);
        }
    }

我非常喜欢,所以如果有人可以提供帮助,我将不胜感激 我有这个问题它可能是小事无论如何请回复sooon!

谢谢你。

2 个答案:

答案 0 :(得分:1)

喜欢这个

private void button1_Click(object sender, EventArgs e)
{
   if(!String.IsNullOrEmpty(richTextBox1.Text))
   {
      Send(richTextBox1.Text);
   }
   else if(!String.IsNullOrEmpty(textBox1.Text))     
   {    
      Send(textBox1.Text);
   } 
   else
   {
       return;  
   }    
}

答案 1 :(得分:0)

您必须确保连接Click事件,以便触发代码。双击按钮时,会自动在设计器代码中自动设置(自动生成)。但是,您还可以在查看事件列表时自动生成方法和订阅。

复制事件功能或手动编码不会自动执行此操作。但是,在代码已经存在的情况下,您现在应该能够在设计器中从Click事件下拉列表中选择它。