C#后端文本的获取和储存

需要将C# Winfrom程序的后端代码中的MessageBox.Show(“中文”)和label的赋值 一起获取,然后存在事先设置好的数据库中

有什么方法可以解决,类似于下面的代码。

private void btnChangeWO_Click(object sender, EventArgs e)
        {
            if (MessageBox.Show("是否切换工单?","确认", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
            {
                this.Dispose();
                this.frm_login.Show();
            }
        }


if (mMac != "")
            {
                if (pass == "0")
                {
                    DialogResult MsgBoxResult;//设置对话框的返回值
                    MsgBoxResult = MessageBox.Show("是否需要重新测试?",//对话框的显示内容 
                        "选择是否重新测试",//对话框的标题
                        MessageBoxButtons.YesNo,//定义对话框的按钮,这里定义了YSE和NO两个按钮 
                        MessageBoxIcon.Exclamation,//定义对话框内的图表式样,这里是一个黄色三角型内加一个感叹号 
                        MessageBoxDefaultButton.Button1);//定义对话框的按钮式样
                    if (MsgBoxResult == DialogResult.Yes)//如果对话框的返回值是YES(按"Y"按钮)
                    {
                        labMsg.Text = "已选择重新测试,请扫描条码";
                        mPass = "FAIL(重新测试)";
                        txtTestLog.Text = "测试SN:" + mBarCode + " Mac:" + mMac + " 测试时间:" + System.DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss") + " 测试结果:" + mPass + "\r\n" + txtTestLog.Text.Trim();
                        txtBarCode.Text = "";
                        txtMac.Text = "";
                        getFormLoad();
                        return;
                    }
                }

c#是你自己写的代码,还是你需要监控外部程序的变化?

作为一个小白,可以写一个小案例,学习一下吗?

可以考虑通过切面的方式:hook win32api,其中MessageBox.Show对应的api是MessageBoxW,Label.Text对应的api是SetWindowTextW,hook这2个api,在自己的hook方法中翻译文本后再调用原api。这种方法可以不改变原有代码。