none
c# 获取panel控件的窗口句柄后,如何取得panel上面的文字内容,panel的文字是用DrawString方法绘制 RRS feed

  • 问题

  • winform窗口下有个panel容器,panel控件上面的文字是用DrawString方法绘制(文字生成代码在下面)。c#能获取panel控件的窗口句柄,如何取得panel控件上面的文字内容,可以用UI Automation来获取吗或者其它方法吗?

    void panel1_Paint(object sender, PaintEventArgs e)
    {
         string s = rd.Next(10).ToString();
         Graphics g = e.Graphics;
         g.DrawRectangle(Pens.Blue, new Rectangle(0, 0, ((Control)sender).Width - 2, ((Control)sender).Height - 2));
         g.DrawString(s, new Font(FontFamily.GenericMonospace, 12f), Brushes.Red, new PointF(10, 20));
     }

    2017年2月17日 16:11

全部回复

  • 你好,

    你是想从哪里获取这个字符串? 为什么不直接使用s这个变量来读取?

    DrawString()是使用GDI+在窗体上画出字符串, 你可以使用ORC识别来识别这个图像。

    希望有帮助。

    Bob


    MSDN Community Support
    Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.

    2017年2月20日 3:49
  • 谢谢!可以用钩子在生成图片前捕获这个s字符串消息吗?或者其它什么方法。
    2017年2月25日 2:37
  • 你好,

    你的这个需求我之前没有遇到过,可以说有点奇怪,暂时没有找到任何和你的问题相关的参考文档。你可以尝试使用钩子捕获paint事件, 另外尝试使用反射来获取。

    Best Regards,

    Bob


    MSDN Community Support
    Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.

    2017年2月25日 2:58