winform

C#winform调用外部程序,等待外部程序执行完毕才执行下面代码

霸气de小男生 提交于 2020-04-07 00:07:03
1.简单调用外部程序文件(exe文件,批处理等),只需下面一行代码即可 System.Diagnostics.Process.Start(“应用程序文件全路径”); 2.如果要等待调用外部程序执行完毕才执行下面代码,只需要在后面加上WaitForExit()方法 System.Diagnostics.Process.Start(应用程序文件全路径).WaitForExit(); 3.另一种方法:使用实例化方法不使用静态方法 1 Process process = new Process(); 2 process.StartInfo = new ProcessStartInfo(路径, 参数); 3 process.Start(); 4 process.WaitForExit(); 5 MessageBox.Show("处理已经完成!", "提示"); 来源: https://www.cnblogs.com/makesense/p/4272944.html

C# WinForm MessageBox弹出对话框详细说明

跟風遠走 提交于 2020-04-06 08:39:08
摘要: MessageBox,显示消息窗口(也称为对话框)向用户展示消息,MessageBoxButtons指定若干常数,用以定义MessageBox上将显示哪些按钮。 命名空间: System.Windows.Forms Assembly: System.Windows.Forms.dll 1、OK,消息框包含“确定”按钮。 1 2 3 4 5 6 MessageBoxButtons msgButton = MessageBoxButtons.OK; DialogResult dr = MessageBox.Show( "OK" , "提示" , msgButton); if (dr == DialogResult.OK) { MessageBox.Show( "默认消息框" ); } 2、OKCancel,消息框包含“确定”和“取消”按钮。 1 2 3 4 5 6 7 8 9 MessageBoxButtons msgButton = MessageBoxButtons.OKCancel; DialogResult dr = MessageBox.Show( "OKCancel" , "提示" , msgButton); if (dr == DialogResult.OK) { MessageBox.Show( "默认消息框" ); } else { MessageBox

Winform实现12306登录购票(一)

你。 提交于 2020-04-04 18:09:11
验证码: (1)发现12306的验证下载链接有两个,还会换,分别是: 1. https://kyfw.12306.cn/otn/passcodeNew/getPassCodeNew?module=login&rand=sjrand&0.478012180178432 2. https://kyfw.12306.cn/passport/captcha/captcha-image?login_site=E&module=login&rand=sjrand&0.8662127058743592 我最开始写的时候用的是1,后来发现1下载失败变成2了,现在又变成1了,但2还能用;先按1写吧。 (2)流程: 第一步(GET): https://kyfw.12306.cn/otn/login/init 此处开始设置Cookie,以下所以Cookie保持一致 第二步(GET):https://kyfw.12306.cn/otn/passcodeNew/getPassCodeNew?module=login&rand=sjrand&0.478012180178432 最后为随机数可不传,要传也就两行代码如下: Random random = new Random(); double randomValue = random.NextDouble(); 第三步(POST):https://kyfw

C#winform TreeView编程

烂漫一生 提交于 2020-04-02 20:08:41
TreeView右键菜单从数据库中读取,插入,删除,查找(高亮显示并展开),编辑(即地编辑)的例子 这个项目包括二个文件,分别为From1.cs and FormCommon.cs,一个配置文件App.config Form1.cs using System; using System.Drawing; using System.Collections; using System.ComponentModel; using System.Windows.Forms; using System.Data; using System.Data.SqlClient; using System.Configuration; namespace Tree { /// /// Form1 的摘要说明。 /// public class Form1 : System.Windows.Forms.Form { private System.Windows.Forms.TreeView treeView1; private System.Data.SqlClient.SqlConnection sqlConnection1; /// /// 必需的设计器变量。 /// private System.ComponentModel.Container components = null ;

Winform主窗体设计

有些话、适合烂在心里 提交于 2020-04-02 09:38:48
主窗体顶部为菜单按钮,子窗体内嵌入Panel显示 界面如下: 第二步,主窗体离不开的几个方法 1,点击菜单功能,加载子窗体 private void btnOpenForm_Click(object sender, EventArgs e) { try { string frmName = ((ButtonX)sender).Tag.ToString(); CloseForm(); Form objForm = (Form)Assembly.LoadFrom("CardManager.EXE").CreateInstance("CardManager." + frmName); this.OpenForm(objForm); } catch (Exception ex) { MessageBox.Show("错误提示:" + ex.Message,"提示", MessageBoxButtons.OK, MessageBoxIcon.Error); } } 2,打开窗体方法 private void OpenForm(Form objForm) { objForm.TopLevel = false; objForm.Parent = this.pnlFill; objForm.FormBorderStyle = FormBorderStyle.None; objForm

C#在winform中调用系统控制台输出

别来无恙 提交于 2020-04-01 01:21:56
在Winform程序中有时候调试会通过Console.Write()方式输出一些信息,这些信息是在Visual Studio的输出窗口显示。 所以就会想,能不能调用系统的Cmd窗口输出呢,经过一番查阅,发现是可以的,现在就把方法写下了: 主要用到的是win32 API函数实现的: 1 [DllImport("kernel32.dll")] 2 static extern bool FreeConsole(); 3 [DllImport("kernel32.dll")] 4 public static extern bool AllocConsole(); 在Program.cs文件中调用方法即可 完整代码: 1 using System; 2 using System.Collections.Generic; 3 using System.Windows.Forms; 4 using System.Runtime.InteropServices; 5 6 namespace XY.WinformDebug 7 { 8 static class Program 9 { 10 [DllImport("kernel32.dll")] 11 static extern bool FreeConsole(); 12 [DllImport("kernel32.dll")] 13 public

c# 海康威视 Winform播放mp4视频

南笙酒味 提交于 2020-03-31 06:30:13
最近有个视频播放系统,需要对海康的mp4格式视频进行播放,由于普通播放器无法对该视频进行播放原因是海康对视频进行了自己的编码,需要相应的解码才可以对视频进行播放。 下面是对海康威视视频播放的c#代码(需要从海康官网下载播放库)。 一,这个是核心库通过c#对海康提供的动态链接库dll方法的封装。 1 public class PlayCtrlSDK 2 { 3 #region 解码库 4 [SecurityCritical] 5 [DllImport("PlayCtrl.dll")] 6 public static extern uint PlayM4_GetLastError(int nPort); 7 /// <summary> 8 /// 获取文件当前播放位置(百分比)。 9 /// </summary> 10 /// <param name="nPort"></param> 11 /// <returns></returns> 12 [SecurityCritical] 13 [DllImport("PlayCtrl.dll")] 14 public static extern float PlayM4_GetPlayPos(int nPort); 15 /// <summary> 16 ///设置文件当前播放位置(百分比)。 17 /// </summary> 18 ///

C# WinForm PropertyGrid用法

限于喜欢 提交于 2020-03-29 03:45:37
关于C# PropertyGrid的用法没有找到,找到一个C++的用法。 模仿着使用了一下,感觉挺不错,分享一下。 基本用法: 拖个PropertyGrid,绑定一个属性类就行了。 大气象 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace PropertyGridApp { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void Form1_Load( object sender, EventArgs e) { propertyGrid1.SelectedObject = new Go(); } class Go { private string _Hi = " hi " ; public string Hi { get { return _Hi; } set { _Hi = Hi; } } } } }

C#(winform)为button添加背景图片,并去掉各种边框

亡梦爱人 提交于 2020-03-27 12:08:49
3 月,跳不动了?>>> 1.既然是添加背景图片 所以这里应该使用 Button.BackgroudImage = "" ;来设置图片 而不应该使用 Button.Image = ""; 因为使用BackgroudImage来设置背景图片,我们还可以使用 BackgroundImageLayout来调节图片,让图片更好的显示在button上 通常使用: 1 this .btnReset.BackgroundImage = global ::Test.Properties.Resources.btn_reset_out; // 设置图片的路径 2 this .btnReset.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch; // 设置图片的显示模式,Stretch表示填满button,如果图片不够button大,就会拉伸图片 2.然后你就会看到尽管添加了背景图片,同时还设置好了拉伸图片,但是效果还是强差人意 怎么会有个边框啊,这得有多难看啊,既然有边框,那就取消边框吧 不过,没找到button的Border属性,但是找到了 FlatStyle属性(决定控件外观的一个属性), 不管了,先逐个试试看有什么变化,最后Flat感觉比较符合我们的口味, 那个给人感觉很厚的边框没有了,但是看起来仍然很不舒服

Winform打砖块游戏制作step by step第4节---小球移动

三世轮回 提交于 2020-03-26 05:09:29
一 引子 为了让更多的编程初学者,轻松愉快地掌握面向对象的思考方法,对象继承和多态的妙用,故推出此系列随笔,还望大家多多支持。 预备知识,无GDI画图基础的童鞋请先阅读 一篇文章让你彻底弄懂WinForm GDI 编程基本原理 二 本节内容---小球移动 1.主窗体启动后,一个小球自动开始运动,碰到界面的四周,进行反弹,反弹后运动速度可能变快或者变慢,主界面截图如下: 三 小球类设计 小球类的定义代码和之前的挡板类差不多,代码如下: public class Ball { //坐标 public int XPos { get; set; } public int YPos { get; set; } public int SpeedX { get; set; } public int SpeedY { get; set; } public Rectangle Rect; /// <summary> /// 初始化小球位置和偏移值 /// </summary> public Ball(int x, int y, int speedX, int speedY) { this.XPos = x; this.YPos = y; this.SpeedX = speedX; this.SpeedY = speedY; } public void Draw(Graphics g) { using