Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/312.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#_Forms_Animation_Text - Fatal编程技术网

C# 如何在C中显示动画文本#

C# 如何在C中显示动画文本#,c#,forms,animation,text,C#,Forms,Animation,Text,我有一个连接四冠军赛。是否有一种方式可以以动画方式显示文本?我的意思是,在每一轮之后,在屏幕上显示第1轮。。第1轮结束后,显示第2轮 我的意思是,显示文本不是以标签的形式出现,而是像在线游戏一样,显示文本只是出现在屏幕上,几秒钟后消失。。不知道这是否可能 我不知道你所说的动画到底是什么意思,但一般来说,你可以创建一个计时器,以你希望的方式“动画化”你的文本,比如每隔20毫秒左右。因此,例如,如果您想简单地从右向左移动文本,您可以在计时器经过处理程序中设置myText.X+=5或类似的设置。您需要

我有一个连接四冠军赛。是否有一种方式可以以动画方式显示文本?我的意思是,在每一轮之后,在屏幕上显示第1轮。。第1轮结束后,显示第2轮


我的意思是,显示文本不是以标签的形式出现,而是像在线游戏一样,显示文本只是出现在屏幕上,几秒钟后消失。。不知道这是否可能

我不知道你所说的动画到底是什么意思,但一般来说,你可以创建一个计时器,以你希望的方式“动画化”你的文本,比如每隔20毫秒左右。因此,例如,如果您想简单地从右向左移动文本,您可以在计时器经过处理程序中设置
myText.X+=5
或类似的设置。

您需要在赢得游戏时通过获取表单图形对象在表单上手动绘制文本

Graphics g = this.CreateGraphics();
g.DrawString("Game Won!", DefaultFont, Brushes.Red, x,y);
其中,这是上下文中的形式,x,y是绘制文本的坐标


当然,正如其他人提到的,您必须执行一个计时器,该计时器将更改x、y或其他属性,例如每个动画帧的字体大小。您需要在一个单独的线程上执行此操作,并对结果进行双缓冲

我的意思是显示文本,而不是以标签的形式,而是像在线游戏中那样,当它们显示文本时,文本只是出现在屏幕上,几秒钟后消失。。不知道这是否可能@学生程序员:弹出一个工具提示?或者使用计时器在几秒钟后设置
myLabel.Visible=false
。嗯,我可以在几秒钟后显示标签并使其可见。是的,但是有没有一种方法可以使标签位于表单中其他每个组件的前面?请问什么是工具提示?我是新手,以前从未使用过它!谢谢你的帮助!是的,这是个好主意,非常感谢!但是我可以在一个窗体上的几个组件上画画吗?如果只执行Graphics g=this.CreateGraphics(),我会为所有表单创建图形,是吗?因此,绘制的项目将位于所有组件的顶部,然后我会在时间结束后清除它?我不确定winforms是否允许您真正使用项目的zindex,您可能必须在最顶部的项目上绘制。这真的不是一个合适的平台。从尝试绘制字符串开始,不要担心动画。当游戏胜出时,你总是可以在窗体上添加一个新的面板控件,然后在上面绘制。现在我想起来了,你可以创建一个自定义控件,覆盖OnPaint方法,在其上创建动画,居中且成比例,然后将其添加到窗体的顶部。是的,我想我可以做到。。如果顶部的面板可以是透明的,以便字符串后面的其他组件仍然可见!我记得需要做一些类似的事情,我很确定你不能做一个透明的面板。