030集——自动弹出对话框、选择文件并播放wav音频文件(winform窗体)——C#学习笔记

如图所示,效果如下:

步骤如下:

新建一个winform窗体,双击界面,进入代码区:

复制(下面代码中命名空间内的代码)到(你的命名空间下),运行。

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Runtime.InteropServices;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;namespace WindowsFormsApp6
{public partial class Form1 : Form{private TextBox textBox1;private Button button1;public Form1(){InitializeComponent();this.button1 = new System.Windows.Forms.Button();this.textBox1 = new System.Windows.Forms.TextBox();this.SuspendLayout();// // button1// this.button1.Location = new System.Drawing.Point(192, 40);this.button1.Name = "button1";this.button1.Size = new System.Drawing.Size(88, 24);this.button1.TabIndex = 0;this.button1.Text = "Browse";this.button1.Click += new System.EventHandler(this.button1_Click);// // textBox1// this.textBox1.Location = new System.Drawing.Point(8, 40);this.textBox1.Name = "textBox1";this.textBox1.Size = new System.Drawing.Size(168, 20);this.textBox1.TabIndex = 1;this.textBox1.Text = "FIle path";// // Form1// this.AutoScaleDimensions = new System.Drawing.SizeF(5, 13);this.ClientSize = new System.Drawing.Size(292, 266);this.Controls.Add(this.textBox1);this.Controls.Add(this.button1);this.Name = "Form1";this.Text = "Platform Invoke WinSound C#";this.ResumeLayout(false);this.PerformLayout();}[System.Runtime.InteropServices.DllImport("winmm.DLL", EntryPoint = "PlaySound", SetLastError = true, CharSet = CharSet.Unicode, ThrowOnUnmappableChar = true)]private static extern bool PlaySound(string szSound, System.IntPtr hMod, PlaySoundFlags flags);[System.Flags]public enum PlaySoundFlags : int{SND_SYNC = 0x0000,SND_ASYNC = 0x0001,SND_NODEFAULT = 0x0002,SND_LOOP = 0x0008,SND_NOSTOP = 0x0010,SND_NOWAIT = 0x00002000,SND_FILENAME = 0x00020000,SND_RESOURCE = 0x00040004}private void Form1_Load(object sender, EventArgs e){}private void button1_Click(object sender, EventArgs e){OpenFileDialog dialog1 = new OpenFileDialog();dialog1.Title = "Browse to find sound file to play";dialog1.InitialDirectory = @"c:\";dialog1.Filter = "Wav Files (*.wav)|*.wav";dialog1.FilterIndex = 2;dialog1.RestoreDirectory = true;if (dialog1.ShowDialog() == DialogResult.OK){textBox1.Text = dialog1.FileName;PlaySound(dialog1.FileName, new System.IntPtr(), PlaySoundFlags.SND_SYNC);}}}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/53510.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ZBrush入门使用介绍——12、折边

大家好,我是阿赵。   继续介绍ZBrush的功能。   如果拿一个立方体,进行CtrlD增加细分 会出现在边缘的线会被平滑的情况,这时候原来立方体的形状会发生一定的变化,不能保持原来的形状。 如果立方体真的只有8个顶点&#xff0…

266-基于Xilinx Kintex-7 XC7K325T 的12路光纤Switch交换平台

一、板卡概述 该系统是由两块模块组成,分别是基于Xilinx公司的FPGAXC7K325T-2FFG900 芯片,pin_to_pin兼容FPGAXC7K410T-2FFG900 的模块和一个FPGA夹层卡(FMC)模块。前者支持64bit DDR3容量2GByte,USB3.0接口;HPC的FMC连…

C++: set与map容器的介绍与使用

本文索引 前言1. 二叉搜索树1.1 概念1.2 二叉搜索树操作1.2.1 查找与插入1.2.2 删除1.2.3 二叉搜索树实现代码 2. 树形结构的关联式容器2.1 set的介绍与使用2.1.1 set的构造函数2.1.2 set的迭代器2.1.3 set的容量2.1.4 set的修改操作 2.2 map的介绍与使用2.2.1 map的构造函数2.…

【尚跑】2024陕西淳化天然氧吧半程马拉松赛149顺利完赛

1、赛事背景 奔跑美丽淳化,畅游天然氧吧。9月8日上午,2024淳化天然氧吧半程马拉松赛在淳化县润镇东街鸣枪开跑,4000名马拉松爱好者相聚美丽淳化,赏荞麦花海、闻硕果飘香,共同开启这场挑战自我、超越极限的奔跑之旅 本次…

游戏的3C,Al

在游戏开发中,“3C”通常指的是三个重要的组成部分:Character(角色)、Camera(摄像机)和Control(控制)。这三者对于创建沉浸式和流畅的游戏体验至关重要。而AI(人工智能&a…

flask下https教程

一、定义 linux 下flask https 协议 二、实现 linux 下flask https 协议 生成SSL证书和密钥文件。您可以使用工具如openssl来生成自签名SSL证书和密钥文件。运行以下命令生成证书和密钥文件: openssl req -x509 -newkey rsa:4096 -nodes -out cert.pem -keyout…

django实操:换用自建mysql用户表(一次失败的经历)

前言 别想了,基础不扎实的话,还是老老实实用django自带的用户模块吧!这是一次耗时而且失败了的经历。 因为是一次失败的经历,这里我给出一些残酷的经验。 实操 重写用户模型 这是我唯一成功的案例,你需要建一个类似如下…

springboot 的共享session方案?

问:springboot 的共享session方案? 参考: https://juejin.cn/post/7195227930077691963分布式之session共享问题 4种解决方案及spring session的使用_分布式session共享方案-CSDN博客 什么是 Session ? 答:因为Http协…

JavaScript web API part1

web API 前言 变量声明 const优先,可变再改为let 原因: 语义化更好若以后变量不改变,就应用const声明实际开发中,react框架中基本都是从const [!IMPORTANT] 基本变量中数据若改变,则不可用const 数组,对…

计算机毕业设计Python+Tensorflow股票推荐系统 股票预测系统 股票可视化 股票数据分析 量化交易系统 股票爬虫 股票K线图 大数据毕业设计 AI

《Tensorflow股票预测系统》开题报告 一、研究背景与意义 随着信息技术的飞速发展和金融市场的日益复杂化,股票作为金融市场的重要组成部分,其价格波动受到广泛关注。传统的股票预测方法如技术分析和基本面分析,虽然在一定程度上能够辅助投…

应用基本期末

选 以下哪些属于Java的三大特性: a. 抽象 b. 封装 c. 面向对象 d. 分布式 e. 安全性 f. 平台独立 以下哪些是Object的公用方法? a. equals() b. getContext() c. notify() d. toString() e. clone() int和integer两个谁更占用内存? a. Int …

如何查询、统计品牌在社媒平台的品牌声量?

现在各平台的竞争越来越激烈,企业想做好在社媒平台上的品牌营销,就需要时刻监测品牌声量的大小,比如企业品牌声量趋势、品牌sov值、搜索指数等相关指标,辅助衡量品牌宣传效果如何。那怎么去查询统计品牌声量情况呢?可以…

myql笔记三(表设计)

如何设计好一张表呢? 1 设计的表达到什么要求? 1.1 首先能满足业务需求; 1.2 增删改查性能尽可能高; 1.3 扩展方便; 1.4 命名规范; 2 明确该表的使用场景? 对每日数据增量和数据全量进行评估&a…

获取多行文本内容,去掉首尾空格、去掉空字符串,解析为文本数组

核心代码 // 获取多行文本内容,去掉首尾空格、去掉空字符串,解析为文本数组 getMultiLineTexts(textareaValue) {return textareaValue.split("\n").map((v) > v.split("\t").join("").trim()).filter((v, i, ar) &g…

@RabbitListener 注解详解

前言: RabbitListener 注解是 Spring AMQP 提供的注解,用于简化 RabbitMQ 消息监听器的创建,我们在方法上添加 RabbitListener 注解,就可以将方法注册为消息监听器,监听 RabbitMQ 的消息,本篇我们来分析一…

数据库的操作:SQL语言的介绍

一.前言 SQL是一种结构化查询语言。关系型数据库中进行操作的标准语言。 二.特点 ①对大小写不敏感 例如:select与Select是一样的 ②结尾要使用分号 没有分号认为还没结束; 三.分类 ①DDL:数据定义语言(数据库对象的操作(结…

std::atomic::fetch_add使用

fetch_add是一个原子操作,这个操作获取一个原子类型的当前值,将给定的递增值添加到这个原子值,然后返回原始的未递增的值。 将val添加到这个原子值中,并返回操作前的值。 整个操作是原子性的(原子性的读-修改-写操作&a…

uniapp设置微信小程序的交互反馈

链接:uni.showToast(OBJECT) | uni-app官网 (dcloud.net.cn) 设置操作成功的弹窗: title是我们弹窗提示的文字 showToast是我们在加载的时候进入就会弹出的提示。 2.设置失败的提示窗口和标签 icon:error是设置我们失败的logo 设置的文字上…

I/O复用之 epoll使用详解 Linux编程

epoll 是 Linux 内核提供的一种用于多路复用 I/O 事件通知的机制,专为高效处理大量并发连接而设计。它被广泛应用于网络服务器和高性能应用中,主要用于监控多个文件描述符(如套接字、管道、文件等)上的事件(可读、可写…

MyBatis ——在java层面对MySQL数据库进行操作

目录 MyBatis 是一款优秀的 持久层框架,用于简化JDBC(java操作数据库)的开发; 使用MyBatis 查询所有用户数据的过程 Lombok是一个实用的]ava类库,能通过注解的形式 简化 JavaBean的代码 注解: 引入Myb…