当前位置: 首页 > news >正文

乱七八糟的知识

一:C#的类

1.文件(夹)类

1.创建或获取路径有误

Directory.GetCurrentDirectory(); //获取当前程序文件夹路径 Directory.CreateDirectory();//括号里面写路径,创建此路径及文件夹 File.Exists(); //括号里面写路径,判断是否有此路径,返回true或者false File.Create(); //括号里面写路径,创建文件 //示例 string path = Directory.GetCurrentDirectory() + "\\test"; //文件夹地址 if (!File.Exists(path)) //判断是否有当前文件夹 { Directory.CreateDirectory(path); //如果没有就创建一个文件夹 }

2.获取某个文件的路径(弹出路径选择框)

OpenFileDialog ofd = new OpenFileDialog(); ofd.Filter = "(*.et;*.xls;*.xlsx)|*.et;*.xls;*.xlsx|all|*.*"; //设定文件的类型 ofd.ShowDialog(); //弹出选择的文件路径 string filePath = ofd.FileName; //接受路径的变量

3.保存文件的路径(弹出路径选择框)

SaveFileDialog sfd = new SaveFileDialog(); sfd.Filter = "(*.et;*.xls;*.xlsx)|*.et;*.xls;*.xlsx|all|*.*"; //设定文件显示类型 sfd.ShowDialog(); string savePath = sfd.FileName;//保存文件路径的变量

2.Ini数据读写

IniAPI.INIWriteValue(地址, 键名称, 值名称, 值数据);//写入值(没有文件会自动生成) IniAPI.GetPrivateProfileString(键名称, 值名称, "", 地址);//获取某个值 IniAPI.INIGetAllSectionNames(地址);//获取所有的键名称 返回数组 IniAPI.INIGetAllItemKeys(地址,键名称);//获取所有的值名称 返回数组 IniAPI.INIGetAllItems(地址,键名称);//获取所有的值名称和值(值名称=值)返回数组 IniAPI.INIDeleteSection(地址,键名称);//删除键名称和对应的数据 IniAPI.INIEmptySection(地址,键名称);//只删除键名称对应的数据,不删除键名称 IniAPI.INIDeleteKey(地址,键名称,值名称);//删除值名称和对应的值

二:WinForm

1.子窗口在主窗口中显示

1.将子窗口的FormBorderStyle属性设置为None

2.在主界面中创建一个Panel容器

3.代码显示

//实例化子窗口 IntegrationOne windowsOne = new IntegrationOne(); //设置属性 windowsOne.TopLevel = false; windowsOne.Dock = DockStyle.Fill; //清空其他显示(panel为控件名称) panel.Controls.Clear(); panel.Controls.Add(); windowsOne.show();

2.ComboBox设置

//不可编辑 将ComboBox的DropDownStyle 属性设置为 DropDownList //默认选项 comboBox1.SelectedItem = comboBox1.Items[0];

3.listBox代码

private void PrinMsg(string msg,bool bReceive=false)//传入一个字符串和一个bool(判断是向listBox输出还是向服务器端输出) { string time = DateTime.Now.ToString("HH:mm:ss");//时间 string receive = bReceive ? " <- " : " -> ";//bool string str = $"{time}:{receive}{msg}";//时间+判断想谁输出+字符 try { listBox1.BeginInvoke(new Action(() =>{if (listBox1.Items.Count > 60){listBox1.Items.Remove(0);} listBox1.Items.Add(str);//向listBox最后一行输出,判断超过60行清除第一行 //添加一个程序运行的状态 mfop.SaveLog(str);//添加一个FileOperate的本地文件,向本地文件写入数据 })); //listbox总是显示最后一行 listBox.TopIndex = listBox.item.Count -1; } catch (Exception ex) { //ex是捕获所有异常 mfop.SaveLog(ex.Message);//捕获到的异常写到本地文件中 }

4.界面的控件调用

/*当界面2要调用界面1的某个控件 *界面1实例化界面2的时候,传入这个控件 *然后界面2先声明一个此控件,然后在public 界面2中(控件 kongjian) 然后在这里面 将获取到的控件赋值给*界面2中声明的控件 */ //调用另外一个界面的数据的时候这样实例化更好一点 SubInterface s1 = (SubInterface)this.Owner; //右键选择listbox的项 if (e.Button == MouseButtons.Right) { int currentIndex = listBox2.IndexFromPoint(e.Location); if (listBox2.SelectedItem != null && currentIndex != listBox2.SelectedIndex) { this.listBox2.SetSelected(listBox2.SelectedIndex, false); } this.listBox2.SetSelected(currentIndex, true); } //提示框确认按钮文本 //使用方法 MessageBoxEX.shou("文本内容",MessageBoxButtons.OKCancel, new string[] { "按钮1", "按钮2" });

5.关闭所有线程

//当窗体关闭时发生的事件 FormClosing 关闭所有线程 System.Environment.Exit(0);

6.WinForm程序打包(简洁版)

1.安装扩展

扩展程序 搜索 Microsoft Visual Studio Installer Projects

2.创建项目

在项目的解决方案中新建项目

3.开始打包

1.右键Application Folder-----Add-----文件
2.选择要打包的项目的bin--debug文件夹的所有文件
3.右键Application Folder----项目输出--主输出--确认
4.找到卸载程序 C:\Windows\System32\msiexec.exe 文件添加进文件
5.右键 msiexec.exe 选择 Create Shortcut to msiexec.exe
6.选择本项目的属性ProductCode 复制里面的内容
7.选择第五条生成的快捷文件Arguments属性 输入 /X +复制的内容(大写有空格)
8.可省略:右键项目属性,点击Prerequisites.选择框架
9.右键项目生成

三:Cog的类

1.CogSerializer类

//将本地的相机vpp文件赋给控件中的cogAcqFifoEditV21 CogAcqFifoTool macqfifo=CogSerializer.LoadObjectFromFile(xjpath)as CogAcqFifoTool; cogAcqFifoEditV21.Subject = macqfifo; //将本地的ToolBlock文件赋给控件中的Toolblock文件 CogToolBlock mtb=CogSerializer.LoadObjectFromFile(tbpath)as CogToolBlock; cogToolBlockEditV21.Subject=mtb; //将控件中的CogAcqFifoEditv21相机控件保存到本地 CogAcqFifoTool xj1 = cogAcqFifoEditV21.Subject; CogSerializer.SaveObjectToFile(xj1,path);//相机实例化和本地Vpp的地址 //将控件中的ToolBlock控件保存到本地 CogToolBlock mtb = cogToolBlockEditV21.Subject; CogSerializer.SaveObjectToFile(mtb,tbpath); //输出脚本中的数组 //先添加一个输出类型并改名为array //数组为arr1(输出数组的类型和数组要一致) //在写setXYTest的局域中写入 mToolBlock.Outputs["array"].Value = arr1;

四:方法

1.Tcp通信的方法

Socket clientsocket;//客户端套接字 public void Setcom()//可以在窗口开启的时候调用此方法 { //提供协议 clientsocket = new Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp); IPEndPoint iPEndPoint = new IPEndPoint(IPAddress.Parse(IP地址),端口号);//建立链接点 clientsocket.Connect(iPEndPoint);//链接服务器 //创建接收消息的异步操作 ThreadPool.QueueUserWorkItem(Receiv,clientsocket); } private void Receiv(object state) { Socket socket = (Socket)state;//设置套接字 while (true) { try { byte[]buffer=new byte[1024*1024*2];//设置传输数据的大小为2MB字节 int r=socket.Receive(buffer);//获取接受到的字节数组长度 if (r == 0) break;//没有接受到信息就退出 string msg=Encoding.Default.GetString(buffer,0,r);//转码接收到的消息 PrinMsg("接收到的消息:"+msg,true);//写一个listBox显示的方法 } } catch (Exception ex) { //进入异常 Thread.Sleep(3000);//每隔三秒连接一次 PEndPoint iPEndPoint = new IPEndPoint(IPAddress.Parse(IP地址),端口号号);//建立链接点 clientsocket.Connect(iPEndPoint);//链接服务器 } }

2.winform图片的使用方法

pictureBox1.Image.Save(path);//将图片保存到本地 pictureBox2.Image= Image.FromFile(path);//将本地图片显示出来

3.判断点击

DialogResult bc = MessageBox.Show("确认或取消", "", MessageBoxButtons.OKCancel, MessageBoxIcon.Information);//弹出提示框 if(bc==DialogResult.OK)//判断是否点击了确认 { MessageBox.Show("保存成功"); } else//点击了取消 { MessageBox.Show("取消了操作"); } OpenFileDialog file = new OpenFileDialog();//弹出框 file.ShowDialog();//选择文件 string url = file.FileName;//文件路径

五:视觉方向

1.正常的方向

在视觉中的方向一般是这种的,由-180 至 180

2.360度的方向

如果要设置为0-360的话,可以先判断是否小于零,然后加360即可,即为

例如

double angle = -18;//假设有一个角度为负18都 if(angle<0) //如果小于0就代表为负角度 { angle=angle+360;//将角度+360将为342度 }

3.Visionpro将弧度转换为角度的公式

弧度*(180/Math.PI);

http://www.jsqmd.com/news/1288494/

相关文章:

  • C语言核心难点深度解析:指针、内存管理与实战避坑指南
  • 金管局监管科技公务员|2026国考计算机岗完整全信息汇总(收藏级)
  • 企业网络推广服务代运营核心逻辑与实践路径专业解析:丽鸿科技行业经验分享
  • 3分钟掌握阅读APP书源配置:新手快速导入免费小说资源的完整指南
  • Pandas缺失值处理全攻略:从诊断到修复的完整工作流
  • 2026 年荆门专业的微水泥施工队哪家专业,装修别再砸钱买瓷砖了,这玩意儿把家刷完居然能省一半钱还不藏污?-鸿山装饰工程 - 行业甄选官
  • 定时任务总失败?扣子平台6大隐藏配置陷阱,资深架构师连夜整理的避坑清单
  • sv 功能覆盖率
  • 大模型时代来临!小白程序员如何免费收藏高薪技能,抢占职业先机?
  • 2026星级酒店 / 商务礼品陶瓷定制攻略:景德镇正宗工艺甄选技巧 - 中国品牌价值观察网
  • Arduino十年本土化:从开源硬件到中国创客生态的技术民主化之路
  • cocos creator 笔记-插屏设置、应用图标、构建发布
  • 深耕针织面料领域,解锁义乌本土优质供货合作资源-明记布业 - 一知资讯
  • AI生成剧情总像流水账?揭秘LLM+强化学习双引擎驱动的3层叙事架构(附Unity集成实测代码)
  • 多模态审核漏检率高达22.6%,如何用可解释性AI重建信任链,一文讲透
  • 北京创客嘉年华:与DFRobot深度面基,解锁开源硬件实战新体验
  • 2. MarkText可代替Typora的markdown 编辑器
  • Nginx map指令详解:六大实战场景与性能优化指南
  • C++ 64位迁移中long类型陷阱:从内存崩溃到解决方案
  • 还在为下载B站视频发愁?这款神器让你5分钟搞定所有下载需求!
  • 2026年沈阳液压货梯厂家挑选攻略 浩喆源液压等企业实测梳理 - 比奇堡111
  • 信创不只是“换成国产软件”:从基础软硬件迁移到Gitee研发工具链的系统工程
  • 靠谱自动卷线器厂家推荐:4大核心指标对比及选择攻略 - 速递信息
  • 7种字重完全掌握:Source Han Serif CN开源中文字体终极配置指南
  • 绞杀 AI 搜索投毒:基于多智能体编排,重塑复杂 Agent 的反 GEO 架构(2)
  • 2026 年武汉智工职业技术学校机电一体化(升学方向)招生简章 - 武汉中职最新信息发布
  • FlicFlac:如何在5分钟内免费掌握Windows终极音频格式转换
  • 收藏!AI自动设计Harness,小白也能轻松掌握大模型调参秘籍
  • 网络广告销售公司核心能力构建与行业服务价值深度解析——以丽鸿科技实践案例为参考
  • NCM解密终极指南:5分钟快速破解网易云音乐加密格式,实现音乐自由