C# winform问题,求大神p图解决

C#winform钢琴游戏问题_百度知道
C#winform钢琴游戏问题
我同时按两个键,只有一个键发出声音,按一个键后发出声音还有完时我按别的键就那个键没声了,求大神。。也可以发邮箱给我 if (e.KeyCode == Keys.A)
SoundPlayer play = new SoundPlayer(@&D://music/a.wav&);
play.Play();
else if (e.KeyCode == Keys.B)
SoundPlayer play = new SoundPlayer(@&D://music/b.wav&);
play.Play();
else if (e.KeyCode == Keys.D)
SoundPlayer play = new SoundPlayer(@&D://music/d.wav&);
play.Play();
else if (e.KeyCode == Keys.F)
SoundPlayer play = new SoundPlayer(@&D://music/f.wav&);
play.Play();
else if (e.KeyCode == Keys.H)
SoundPlayer play = new SoundPlayer(@&D://music/h.wav&);
play.Play();
else if (e.KeyCode == Keys.J)
SoundPlayer play = new SoundPlayer(@&D://music/j.wav&);
play.Play();
你这个if与else拉太长了,建议你可以把else去掉,或者使用switch像你这样只肯定只能一次按一个键了,按多个键也要响应的话就比较繁琐,给个思路:bool isKeyDownA =bool isKeyDownB =private void Form1_KeyDown(object sender, KeyEventArgs e)
if (e.KeyCode == Keys.A)
//单按a时执行的代码
isKeyDownA =
if (e.KeyCode == Keys.B)
//单按a时执行的代码
isKeyDownB =
if (isKeyDownA && isKeyDownB)
//ab同时按下执行代码
isKeyDownA =
isKeyDownB =
}但是这里又有个限制,只能响应同时按两个键,那么按三个或四个就更麻烦了。像这种你可以了解下hook钩子技术或者消息循环。当然,多线程也是一种方法,一个线程接收按键放一个队例里,一个线程按队例顺序播放,这种方法不简单。
你会多线程?给点建议
其他类似问题
按默认排序
其他1条回答
声音要弄成并行的吧~~你串行不能并发而且会有冲突啊
你说的这个问题我弄过 ,也是一样的。还是不行
我没做过音频的啊~~就是有点想法。。你那wav的声音 不能加到一条音轨上吗?感觉你用播放做的话 就像放歌一样了啊 肯定不能两个一起放的啊。你放后面的前面肯定就停了 而且也不能一起放。你实例化成不同的变量试试能不能并发~ SoundPlayer play = new SoundPlayer(@&D://music/j.wav&);要么就在外面实例化 感觉在里面实例化会很快被释放掉啊..
弄了还是这样,听说要用多线程。。。
没用过多线程...
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁C#winform怎么插入视频? 类似播放器那样,当我点击按钮时,播放一段视频,该怎么做?求大神指点_百度知道
C#winform怎么插入视频? 类似播放器那样,当我点击按钮时,播放一段视频,该怎么做?求大神指点
提问者采纳
wmp(Windows Media Player) 在工具箱上,右键〉选择项〉等一会 会出现一个对话框。在 COM+ 还是。NET选项卡里,将滚动条托到最下,向上找到这控件。选中确定〉这时候你的工具箱会多出一个控件,将他托到窗体上就可以为你的窗体,添加一个播放器。
提问者评价
其他类似问题
winform的相关知识
等待您来回答
您可能关注的推广
下载知道APP
随时随地咨询
出门在外也不愁求教winform追写excel的问题,感谢大神
[问题点数:20分,结帖人gijquery4]
求教winform追写excel的问题,感谢大神
[问题点数:20分,结帖人gijquery4]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
相关帖子推荐:
匿名用户不能发表回复!|
每天回帖即可获得10分可用分!小技巧:
你还可以输入10000个字符
(Ctrl+Enter)
请遵守CSDN,不得违反国家法律法规。
转载文章请注明出自“CSDN(www.csdn.net)”。如是商业用途请联系原作者。c# winform下载。通过调用WCF服务请求服务端文件下载到本地,做了几天了思路混乱,求大神指点,在线等..._百度知道
c# winform下载。通过调用WCF服务请求服务端文件下载到本地,做了几天了思路混乱,求大神指点,在线等...
不用ftp和http下载,直接通过wcf服务请求服务端文件,然后通过调用服务下载到本地。那位大神做过类似的下载,给点思路,或直接贴源码也行。
提问者采纳
通过wcf下载文件有很多条件,主要思路是WCF服务返回一个Stream实例,然后再winform一端读取并保存,注意wcf的服务端在winform请求过程中不要将Stream对象关闭,其他就是一些关于传输的设置,比如文件较大、传输超时等,还有就是wcf定义的服务方法的参数不能有out参数,希望能帮助到你。还不明白就baidu个例子看看就可以了
提问者评价
谢谢你的答案,我今天中午的时候自己解决了 调用了webhttpBind 灰常开心
其他类似问题
wcf的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁求c#大神指导,关于socket编程,winform的~~文件共享系统~~~_百度知道
求c#大神指导,关于socket编程,winform的~~文件共享系统~~~
能帮忙的谢谢了,留言QQ联系~~~谢谢啊,
我有更好的答案
按默认排序
私信&#47,,追问&#47,求助联系,-程-有偿解决此类问题,匹配不同程度 -设--计-如果您的要求与此类似,此回复有效,-制--作-可 Baidu Hi &#47,-序-功能可定制,
大概意思是 在服务器上有个文件夹,里面是从客户端传上来的文件,这些文件可以让每个客户下载和查看吧
不是,是服务端只保存节点信息,而真正和客户端通信的是有资源的客户端,服务端是一个索引
其他类似问题
文件共享的相关知识
等待您来回答
您可能关注的推广
下载知道APP
随时随地咨询
出门在外也不愁}

我要回帖

更多关于 求大神 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信