Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/270.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# g、 画画时经常眨眼_C#_Winforms - Fatal编程技术网

C# g、 画画时经常眨眼

C# g、 画画时经常眨眼,c#,winforms,C#,Winforms,我在计时器中使用此函数: IntPtr Handle=FindWindownull,记事本; 如果无线电按钮1.已检查 { 使用图形g=Graphics.FromHwndHandle { Pen PN=新的PenpictureBox2.BackColor,将.Convert.ToInt32numericUpDown2.Value; g、 抽绳编号961520961560; g、 抽绳编号985540935540; g、 处置; } } 但是绘图经常闪烁,即使我将计时器间隔设置为1,您的代码也只会

我在计时器中使用此函数:

IntPtr Handle=FindWindownull,记事本; 如果无线电按钮1.已检查 { 使用图形g=Graphics.FromHwndHandle { Pen PN=新的PenpictureBox2.BackColor,将.Convert.ToInt32numericUpDown2.Value; g、 抽绳编号961520961560; g、 抽绳编号985540935540; g、 处置; } }
但是绘图经常闪烁,即使我将计时器间隔设置为1,您的代码也只会获得主窗口的句柄

大多数应用程序都有覆盖该客户端区域的其他控件

你需要得到记事本文本区域的句柄,而不是绘制到客户端区域

您可以通过以下方式进行测试:

测试句柄值。如果为0,则只显示桌面。这可能是你一直看到的

如果您使用自己的表单进行测试,当且仅当绘图区域未被其他控件覆盖时,它才会显示十字

列举过程以获得正确的标题也是一个好主意。下面是我在另一篇文章中发现的一个例子:

public static IntPtr WinGetHandle(string wName)
{
    IntPtr hWnd = IntPtr.Zero;
    foreach (Process pList in Process.GetProcesses())
    {
        if (pList.MainWindowTitle.Contains(wName))
        {
            hWnd = pList.MainWindowHandle;
        }
        Console.WriteLine(pList.MainWindowTitle);
    }
    return hWnd;
}

即使我将计时器间隔设置为1,也需要更多的尝试和错误代码来找到应用程序表面的合适子句柄。

?意思是即使我尽可能经常运行它???间隔以毫秒为单位@陶冶。。找到解决方案了吗?对于较慢的闪烁速率,请将“间隔”设置为较大的值。1000是一秒钟也不要处理在using子句中创建的内容@TaW较慢的间隔实际上更糟糕,甚至画得不好。不确定你的方法是否有效。仍然不知道如何修复闪烁的绘图,当我使用;;,时,它工作得更好,但是如果我用它,我就不能再回到形式上了,你的目标利率是多少?另外:您是否声称您的代码实际上绘制在记事本上??测试:移动记事本;它还会在同一地点得到十字架吗??