自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(299)
  • 资源 (16)
  • 收藏
  • 关注

转载 如何将exe文件添加到开机启动

2、打开windows的startup启动目录(针对win10以上)3、将exe的快捷方式复制到startup目录即可实现开机自启动。1、先创建exe文件的快捷方式。

2024-05-16 10:10:22 24

转载 本地计算机上的MySQL服务启动后停止。某些服务在未由其他服务或程序使用时将自动停止

停止MySQL 服务后再次启动时报错:本地计算机上的MySQL服务启动后停止。某些服务在未由其他服务或程序使用时将自动停止。原因一般为修改MySQL的my.in后报错。1.修改MYSQL配置文件my.ini后文本文档会默认使用UTF-8编码。3.再保存到原来的目录下做保存。4.这样我们的服务又可以起来了。2.应另存为ANSI编码文件。

2024-05-16 10:07:33 53

转载 Windows Server 2016不小心卸载了.NET Framwork4.6后服务器管理器等功能都不能用的解决方案

手贱误删了net Framework ,然后服务器管理器就启动不了了。看到一个博文可以直接cmd执行命令修复,执行后好使,完美。这两条指令都执行100% 就成功了。

2024-05-16 09:07:59 26

转载 RabbitMQ和Erlang安装后无法访问localhost:15672解决方法

正常启动的服务应该是如下所示,E和e分别表示显性和隐性启动,如果没有E和e,这也就是你打不开localhost:15672的原因所在,可能性很大。这个是我rabbitMQ安装在电脑上的位置,具体的要看你最近安装的位置,总之找到sbin。D:\Software\rabbitmq_server-3.7.10\sbin这个路径。基本就可以解决打不开的问题了。就在这里输入cmd即可打开。解决后就可以正常登录访问了。.打开这个文件的命令窗口。账号密码都是guest。

2024-05-15 18:24:37 43

转载 .NET有哪些好用的定时任务调度框架

定时任务调度的相关业务在日常工作开发中是一个十分常见的需求,经常有小伙伴们在技术群提问:有什么好用的定时任务调度框架推荐的?今天大姚给大家分享5个.NET开源、简单、易用、免费的任务调度框架,帮助大家在做定时任务调度框架技术选型的时候有一个参考。

2024-05-06 10:10:23 29

转载 Gitea自建 Git 服务真香

Gitea 是一个自己托管的 Git 服务程序。他和 GitHub, Bitbucket or Gitlab 等比较类似。他是从 Gogs 发展而来,已经 Fork 并且命名为 Gitea。Gitea 的首要目标是创建一个极易安装,运行非常快速,安装和使用体验良好的自建 Git 服务。采用 Go 作为后端语言,这使得只要生成一个可执行程序即可。并且它还支持跨平台,支持 Linux, macOS 和 Windows 以及各种架构,除了 x86,amd64,还包括 ARM 和 PowerPC。

2024-04-26 09:50:53 22

转载 5款开源、美观、强大的WPF UI组件库

MaterialDesignInXamlToolkit 是一个开源、易于使用、强大的 WPF UI 控件库,旨在帮助开发人员在 C# 和 VB.Net 中实现 Google 的 Material Design 风格的用户界面。该框架提供了一组丰富的控件、样式和效果,使开发人员能够轻松创建现代化、具有吸引力的应用程序。LayUI-WPF是一个WPF版的Layui前端UI样式库,该控件库参考了Web版本的LayUI风格,利用该控件库可以完成现代化UI客户端程序,让你的客户端看起来更加简洁丰富又不失美感。

2024-04-23 11:02:31 69

转载 VS调试web项目时,上传文件导致进程退出

在使用vs调试web项目时,遇到一个奇葩问题,上传文件,进程直接退出,断点都不会进。开始怀疑是写的代码有问题。后来发现,发布代码放在IIS里,并不会出问题。只是在调试的时候会出现此问题。所以判断应该是vs的配置问题。就是这个选项导致的。勾选了这个选项之后,就会出现问题。后来又百度了很长时间,终于找到了问题的根源。

2024-04-22 08:52:21 15

转载 校验算法——CRC

CRC(Cyclic Redundancy Check)校验算法就是一种常用的数据校验方法,它通过对数据进行处理生成校验码,从而实现对数据的完整性和准确性进行验证。CRC-16算法适用于对数据进行中等程度的校验的场景,例如一些比较重要的通信数据、存储数据等。精度高:CRC算法能够提供较高的校验精度和安全性,能够在数据传输过程中及时发现错误,并对数据进行纠错,从而保证数据的可靠传输。校验码长度有限:不同版本的CRC算法的校验码长度有限,无法对所有可能的数据错误进行完美的检测和纠错。CRC算法的优点与缺点。

2024-04-07 11:24:23 105

原创 Net安卓app BroadcastReceiver 使用记录一坑

为了尝试这个广播接收淌了很多坑,像intent.SetPackage和intent.SetComponent发送的时候都不是必须指定的(新旧版本都不需要),唯一需要指定的就是new Intent(“test”)中的这个action。由于项目需要,需要对接别的app的广播,就看了看Net 安卓开发的广播接收,看官网的介绍单纯广播和接收都挺简单的,于是上手样板项目弄了两个demo出来,app1用来发,app2用来收。然后开始广播,等待了一会接收到了,不用考虑升级了。建立完后,执行,不错接收到了。

2024-03-21 15:16:35 816

原创 net安卓app开发--启动模版app

这里需要注意一点,如果安装完后,运行demo代码提示遇到错误,是否继续执行,那么找到HAML的位置,执行一下.exe文件。demo项目是直接选Android应用程序 Net版本的,因为5.1后不再对Xamarin版本支持。这里需要等待一段时间,图标中.Net对应就是我们的demo,app。这个visiual stadio 在工具选项下。这个HAXM是硬件加速器,运行的时候会快很多。进入管理工具后下载最新版本的sdk。一般HAML的路径是在安卓SDK的。1.下载安卓sdk以及工具。下载勾选的这三个即可。

2024-03-19 16:58:17 238

原创 wpf prism 使用nlog

引入包NLog.Extensions.Logging包。2.NLogExtension扩展类。App.xaml.cs中注册。1.引入nuget包。

2024-03-12 13:38:21 304

原创 C# 8.0+版本项目 string不可为空

里面有个可为Null的类型设置:提示是C# 8.0版本项目,可为Null类型的校验是否启用,默认是启用的,这里选禁用就可以了。1.在某一次新建项目的时候发现,新建的项目,写的测试接口,接口的入参有string的参数,但是调用接口的时候string的参数没有传报了400,很奇怪,也没有语法错误之类的。一定要将解决方案下所有的项目都禁用掉这个,否则仍然报这个错。在项目上右键->属性->生成->常规。

2024-03-12 10:12:38 245

原创 wpf prism左侧抽屉式菜单

ContentView 、TestView、SettingView是新建的用户控件,自己随便新建可以区分不同控件查看效果即可。1.首先引入包MaterialDesignColors和MaterialDesignThemes。RegionName 对应每一个创建Control,具体的规则可以看一下prism的导航。左侧菜单显示在窗体外,点击左上角菜单图标通过简单的动画呈现出来。prism 有个注册类ModuleModule。这里头像的图片写死了,需要的自己替换。然后在App.xaml.cs中注册。

2024-03-07 15:18:27 676

原创 wpf prism DryIoc批量注册服务

如果有一接口多实现的情况,需要额外加一部分代码。2.在App.xaml.cs中注册。1.首先引入Scrutor包。如果没有一接口多实现的情况。

2024-03-06 14:38:41 455 1

原创 wpf prism 中使用automapper

AutoMapperExtension类。1.首先引入包Automapper。在App.xmal.cs中添加注入。

2024-03-06 13:49:05 466 1

转载 ASP.NET Core + Jenkins实现自动化发布

6、发布到应用服务器,另外需要注意的是 jenkins 默认是以jenkins用户来执行的,因此需要开通jenkins用户能执行bash的权限,以及创建git插件身份验证秘钥的时候一定要以jenkins用户登录去创建,否则要拉取代码的时候会出现权限问题。在jenkins 服务器上执行以下命令,创建ssh 身份认证秘钥,并将公钥复制到应用服务器上,以便在编译成功后,直接复制dll到应用服务器上,而无需输入应用服务的登录密码,需要注意的是,创建秘钥前,先切换到jenkins用户账号。

2024-03-06 09:34:09 37

转载 开源轻量的 .NET 监控工具 - 看门狗

随着社区的不断发展和功能的持续完善,相信看门狗将在未来的.NET监控领域发挥更加重要的作用。看门狗(dogwatch)正是一个开源、轻量级的.NET监控工具,为.NET应用提供实时性能监控、告警通知等功能。看门狗是一个基于.NET平台开发的开源监控工具,专为.NET应用程序的性能和可用性监控而设计。它通过集成第三方服务(如AppDynamics, New Relic, DataDog等)和自定义监控指标,为.NET应用程序提供全面的性能监控和告警通知功能。集成监控:将看门狗客户端集成到.NET应用程序中。

2024-03-06 09:26:07 86

转载 C#WPF开发CM+Fody+HC

1.CM:Caliburn.Micro(简称CM)一经推出便备受推崇,作为一款MVVM开发模式的经典框架,越来越多的受到wpf开发者的青睐.我们看一下官方的描述:Caliburn是一个为Xaml平台设计的小型但功能强大的框架。WPF开发中最流行的MVVM开发模式框架分别是Caliburn.Micro、Prism、MVVMLight,其中CM框架以其简洁优雅的用法从中脱颖而出,越来越受到开发者的青睐;源码仓库链接:https://github.com/Fody/PropertyChanged。

2024-03-06 09:22:58 73

转载 .NET 几种微服务框架,你用过吗?

Steeltoe提供了一组用于构建云原生应用程序的工具和库,可以轻松地在.NET应用程序中集成云服务,如服务发现、负载均衡、配置管理、追踪和监控等。它提供了与Kubernetes、Azure、AWS、GCP和Consul等平台和服务的集成,可以帮助开发人员轻松地在不同的环境中部署应用程序。Dapr提供了一组通用的构建块,包括状态管理、消息传递、事件处理、服务调用和密码管理等。是.NET的下一代微服务开发框架,提供了基于Dapr的云原生最佳实践,能够快速实现分布式、微服务、DDD,SaaS等现代应用开发。

2024-03-06 09:19:39 56

转载 使用ONE.Abp快速开发微服务

用Base模板创建后,进入后端项目修改连接字符串,base项目使用了两个数据库,一个是当前基础服务的数据库,另外一个是共享库,用于存储权限,设置,字典和数据权限等数据。公司采用项目制工作方式,因此在不同项目上可能存在多个团队开发独立的代码库,但通用的基础设施却是相同的,这可能导致每个项目都需要编写相同的代码,并重复造轮子。更严重的是,每个项目都有自己的用户体系,导致用户在使用不同的服务时需要重新登录,这不仅会破坏用户的体验,也不利于项目的维护和数据的积累。3、运行网关,认证服务,基础服务。

2024-03-06 09:13:51 20

转载 C# 委托事件

与委托不同,事件是封装在类中的,并且只能从类的内部触发(调用)。总的来说,委托和事件在C#中都是非常重要的概念,它们提供了强大的回调和事件驱动编程能力。委托的声明与方法的声明类似,但没有方法体,并且在定义时使用了delegate关键字。多播能力:委托和事件都支持多播(即可以有多个订阅者),但事件的多播是通过语言特性支持的,而委托的多播则需要手动管理。访问限制:委托可以被任何拥有委托引用的代码调用,而事件只能由定义事件的类内部触发,外部代码只能订阅或取消订阅事件。多播委托是持有对多个方法的引用的委托。

2024-02-01 14:48:13 144

原创 C#基础题

值类型和引用类型之间的区别是什么?类和结构之间的区别是什么?接口和抽象类之间的区别是什么?委托和事件之间的区别是什么?泛型和非泛型类之间的区别是什么?

2024-02-01 14:33:19 1844

原创 wpf textbox框失去焦点,使值及时更新到viewmodel中对应的字段

在WPF (Windows Presentation Foundation) 中,如果您希望当用户在TextBox中有焦点时点击页面上的空白区域,使焦点从TextBox移开,您可以通过为包含TextBox的容器(如Grid或Panel)或根窗口添加鼠标事件处理器来实现。如果您在TextBox中使用Keyboard.ClearFocus()来清除焦点,但发现ViewModel的值没有更新,可能是因为数据绑定的更新机制没有被正确触发。在事件处理器中,检查当前具有焦点的元素是否是TextBox。

2024-02-01 10:24:35 1137

原创 wpf prism 项目使用IMemoryCache

1.将MemoryCache注入到容器。

2024-01-18 16:45:21 390

原创 mysql修改登录密码

3.方法三:使用SET PASSWORD语句修改密码。1.方法一:使用ALTER USER语句修改密码。2.方法二:使用UPDATE语句修改密码。

2024-01-17 17:32:52 528

转载 WPF定制实现自己的分页控件并配合DataGrid使用

将自己的控件项目生成为dll文件,并在需要使用分页控件的项目中引用该dll文件。接下来在需要使用分页控件的页面引用自己的控件库,即可在页面设计器中实时预览该控件的使用效果。因为项目需求,在使用WPF原生DataGrid时,需要使用到分页控件,所以自定义了分页控件。自己注册属性,可以通过输入propdp,然后按两次Tab键自动生成相关代码。按钮事件参数:PageButtonEventArgs.cs。分页控件:DakaPathPageControl.xaml。配合MahApps.Metro,使用效果如下。

2024-01-13 16:36:53 345 3

转载 wpf datagrid根据单元格的值判断显示不同的前景色Foreground

看自己需求放在哪里,我是放在了Common公用项目下(放置路径不同,需要引入的命名空间不同,需要注意一下)ConvertToDouble是我自定义的,看自己的需求是什么值类型自己转换。ConverterParameter 是用来进行和单元格比较的数值。1.首先创建一个改变Foreground的类。

2024-01-13 13:38:09 160

转载 WPF左侧导航菜单效果实现(使用MaterialDesign样式)

这是一个主题库,引用后默认到所有控件样式,如果某个控件不想用,可以这样写:style={x:null}UserControlMenuItem为单个菜单用户控件,由 Expander+ListView的组合形式实现。App.xaml:只引入MD控件样式。MainWindow.展示导航菜单及控制菜单对应的用户控件切换。五、导航子菜单用户控件,UserControlMenuItem.xaml;ViewModel中定义的两个菜单相关的类,将菜单及业务用户控件关联。七、两个举例用的用户控件;

2024-01-12 10:28:04 1113

转载 WPF字体或内容模糊的解决方法

2.是让Text元素不作为DropShadowEffect的子元素,让ShadowEffect不会影响Button(见效果3)。3.效果如下(0:基准 1:虚糊 2:UseLayoutRounding 3:平行元素)因为DropShadowEffect使得元素/子元素先渲染为位图,从而导致的位图栅格对齐导致的模糊。1.是使用UseLayoutRounding,它使得控件布局的时候对齐栅格(见效果2)。效果4是试验SystemDropShadowChrome,可以注释掉。

2024-01-11 17:26:25 187

转载 WPF中加载并使用图像资源

这样图片编译后就会以二进制的方式保存在exe文件里面了,即使我们把image图片删掉,点击exe文件也能正常显示图片。如果我们把生成操作改为复制到输出目录 ->始终复制,这样的话,如果删掉图片是无法显示的。

2024-01-10 12:59:18 293

转载 掌握C#中的GUI多线程技巧:WinForms和WPF实例详解

在C#中,要在创建控件的线程以外的线程访问控件,可以使用Control.Invoke(WinForms)或Dispatcher.Invoke(WPF)。以下是详细的步骤和示例代码,包括基础功能和高级功能。在WPF中,Dispatcher本身就是一种同步上下文,所以高级功能的WPF示例代码与基础功能示例代码相似。使用Dispatcher访问控件: 在另一个线程中使用Dispatcher.Invoke访问控件。概述:本指南详细解释了在C#中如何在创建控件的线程以外的线程中访问GUI。(WinForms)或。

2023-12-29 21:22:23 139

转载 几个桌面应用开发框架比较:Electron、Flutter、Tauri、React Native 与 Qt

Electron 拥有庞大的社区和广泛的预构建组件,而 React Native 提供强大的组件系统,并允许在移动和桌面平台之间重用代码。然而,它的跨平台支持可能不像其他框架那样无缝,并且可能需要额外的努力才能在所有平台上实现一致的性能和 UI。主要特点:React Native 提供了一种访问本机 API 和功能的方法,但与其他框架相比,它可能需要更多的努力。Electron:以其较高的资源使用率而闻名,Electron 应用程序可能会占用更多内存和 CPU,从而影响较旧或功能较弱的计算机的性能。

2023-12-29 21:19:48 4327

转载 C# Modbus库推荐:轻松实现Modbus通信的利器

NModbus是一个开源的C# Modbus库,具有丰富的功能和良好的性能。EasyModbusTCP.NET是一个Modbus TCP、Modbus UDP 和 Modbus RTU 客户端/服务器库,用于 .NET 行业认证!在C#中,有许多Modbus库可供选择,这些库提供了方便的API和丰富的功能,使Modbus通信变得更加简单和高效。也是一款支持modbus协议的组件,本组件基于.NET Standard 2.0,可用于.Net的跨平台开发,如Windows、Linux甚至可运行于树莓派上。

2023-12-29 21:18:13 1863

转载 .NET 7+SignalR+Hangfire实现后台任务队列和实时通讯

在.NET6 WebAPI的情况下,前端是vue+ts,我现在有个需要就是,我写了一个接口,是对接stable diffusion webui 文生图的接口,前端第一个人请求,返回图没有问题,但是,此时在生成图的过程中,第二个人请求,我希望加入到一个队列或者别的方式 ,把这个请求放着,我处理完第一个请求之后继续处理第二个,并且告诉用户,前面有多少个任务需要等待?同时,在UseHangfireServer时,我使用了自定义的队列名称,并将同时执行的任务数设置为1,以实现任务队列中的任务唯一,且任务依次执行。

2023-12-29 21:14:39 97

转载 WPF控件风格大揭秘:从默认样式继承,定制外观如行云流水

概述:在WPF中,通过从默认样式继承,实现了灵活的控件样式定制。基础用法展示了按钮样式的简单继承,而高级用法通过自定义样式同时定制了默认和特定控件样式,为WPF应用提供了更灵活的外观定制方式。高级用法: 在资源字典中定义默认文本框样式,然后在自定义样式中使用BasedOn属性进行继承。基础用法: 使用BasedOn属性,可以从默认按钮样式继承,并对Background和Foreground属性进行定制。通过这些例子,你可以清晰地了解如何在WPF中通过继承默认样式来定制控件外观。

2023-12-29 21:05:23 170

转载 .Net面试

45.CLR的内存映射(EnableWriteXorExecute)的作用主要是什么。48.基础类型优化,循环克隆优化,矢量化优化分别是什么,如何优化的。22.类型信息(MT),对象头(ObjHeader),它们的作用。28.分层编译,OSR,GDV,常量分别是如何做到极致优化的。29.MSIL的二进制的作用已经与IL代码段区别在哪儿。31.GCInfo,EHinfo是如何运行和解码的。18.托管堆,堆段,区域,分配上下文,都是什么。9 .GC计划阶段的二叉树是如何构建的。

2023-12-14 16:17:00 39

转载 阿里终面:10亿数据如何快速插入MySQL?

但如果是HDD的话,虽然顺序读写会有非常高的表现,但HDD无法应对并发写入,例如每个库10张表,假设10张表在并发写入,每张表虽然是顺序写入,由于多个表的存储位置不同,HDD只有1个磁头,不支持并发写,只能重新寻道,耗时将大大增加,失去顺序读写的高性能。回到SSD的场景,不同SSD厂商的写入能力不同,对于并发写入的能力也不同,有的支持500M/s,有的支持1G/s读写,有的支持8个并发,有的支持4个并发。使用主节点轮训任务,可以减少任务的争抢,通过kafka发布消息,接收到消息的进程处理任务。

2023-12-14 16:15:09 55

转载 没用过微服务?别慌,丐版架构图,让你轻松拿捏面试官

在串行的内存和存储访问能防止这种情况,当读写命令同时发生的时候,默认是先执行读操作的。静态资源服务,Nginx可以提供静态资源服务,如图片、视频、JavaScript文件、CSS文件、HTML静态文件等,减轻后端服务的压力,提高系统的响应速度和性能。很多人都说现在是云原生、大模型的时代,微服务已经过时了,但现实的是,很多人开发多年,都没有在实际的开发中用过微服务,更别提搭建微服务框架和技术选型了。脑中有图,口若悬河,一套组合拳下来,面试官只能拍案叫好,大呼快哉,HR更是惊呼,我勒个乖乖,完全听不懂。

2023-12-14 15:58:52 121

转载 开源项目.net

【代码】开源项目.net。

2023-12-14 15:49:40 510 2

tcp、udp、串口等监控工具

监控精灵,是用于过滤监控网络TCP/UDP数据包的,对于Modbus RTU/ASCII Over TCP/UDP有详细的分析功能,和CEIWEI CommMonitor 串口精灵过滤监控 分析RTU/ASCII一样的功能,方便大家分析网口TCP/UDP PLC设备的Modubs RTU/ASCII协议。

2024-05-09

安卓 开发 工具 SDK window

安卓开发工具

2024-03-19

java jdk 1.8 版本

java jdk 1.8 版本

2024-03-19

jquery.table2excel.js

用于网页上导出到Excel,可以是整个table或者整个div,根据id获取对象,然后导出。

2019-05-08

TeamViewer激活版

TeamViewer激活版,使用时在访问电脑和被访问电脑上需同时装上此软件破解版。

2019-04-17

Infragistics_Ultimate_2017

Infragistics_Ultimate_2017和VS2017搭配使用,有序列号,亲测可用。

2019-04-10

DotNetCore.1.0.1-VS2015Tools.Preview2.0.4.exe

用于VS2015添加.netcore框架时的一个预览工具,目前用的sdk是2.2版本的,DotNetCore.1.0.1-VS2015Tools.Preview版本如上。

2019-03-25

64位ocx控件打包cab和exe的方法

64位ocx控件打包cab和exe的方法,是一个不错的工具,有需要的可以下载

2018-11-06

32位ocx控件打包cab和exe的方法

32位ocx控件打包cab和exe的方法,是一个不错的工具,有需要的可以下载

2018-11-06

大华dss平台连接摄像头

这个webdemo可以通过连接大华的dss平台来访问摄像头画面,包括云台的控制,画面回放等都可以实现。

2018-11-06

大华webdemo

这个是参考的一个web版的demo,如果仅仅是实现监控的查看是可以实现的,如果要实现控制和画面回放请等待新的资料更新

2018-11-06

Extjs读取大华监控

Extjs读取大华监控,这个仅仅可以实现监控画面的读取,云台的控制个人感觉可能是接口太老了,已经不能实现目前新版的大华监控的控制了,至于控制的实现后续还有更新

2018-11-05

ASP.net MVC SportsStore项目开发六

ASP.net MVC SportsStore项目开发六项目的安全性和收尾。

2018-07-06

ASP.net MVC SportsStore项目开发五

ASP.net MVC SportsStore项目开发五,对商店的产品的编辑操作

2018-07-05

ASP.net MVC SportsStore项目开发四

ASP.net MVC SportsStore项目开发四,完善了购物车功能。

2018-07-05

ASP.net MVC SportsStore项目开发三

ASP.net MVC SportsStore项目开发三,项目开发二的代码也包含在其中,是一步步递进的,下载三可以不用下载前面的代码。

2018-07-04

ASP.net MVC SportsStore项目开发一

ASP.net MVC SportsStore项目开发一,对于接触C#入门级别的人来说还是挺好的一个资源。

2018-06-29

C#winform实现串口通信读取电子天平数据

此程序可以用来读取赛多利斯电子天平的称重读数,但程序中读数部分代码需要自行提取,属于电子天平读数的代码可参考https://mp.csdn.net/postedit/80812561

2018-06-26

Windows 超级终端 串口通信

超级终端为串口通信中用于测试串口的一个非常方便的工具,里面包含中英文两个版本。

2018-06-26

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除