乱七八糟的知识

📅 2026/7/29 17:26:30
乱七八糟的知识
一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(地址,键名称,值名称);//删除值名称和对应的值二WinForm1.子窗口在主窗口中显示1.将子窗口的FormBorderStyle属性设置为None2.在主界面中创建一个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 bReceivefalse)//传入一个字符串和一个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 Projects2.创建项目在项目的解决方案中新建项目3.开始打包1.右键Application Folder-----Add-----文件2.选择要打包的项目的bin--debug文件夹的所有文件3.右键Application Folder----项目输出--主输出--确认4.找到卸载程序 C:\Windows\System32\msiexec.exe 文件添加进文件5.右键 msiexec.exe 选择 Create Shortcut to msiexec.exe6.选择本项目的属性ProductCode 复制里面的内容7.选择第五条生成的快捷文件Arguments属性 输入 /X 复制的内容大写有空格8.可省略右键项目属性点击Prerequisites.选择框架9.右键项目生成三Cog的类1.CogSerializer类//将本地的相机vpp文件赋给控件中的cogAcqFifoEditV21 CogAcqFifoTool macqfifoCogSerializer.LoadObjectFromFile(xjpath)as CogAcqFifoTool; cogAcqFifoEditV21.Subject macqfifo; //将本地的ToolBlock文件赋给控件中的Toolblock文件 CogToolBlock mtbCogSerializer.LoadObjectFromFile(tbpath)as CogToolBlock; cogToolBlockEditV21.Subjectmtb; //将控件中的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[]buffernew byte[1024*1024*2];//设置传输数据的大小为2MB字节 int rsocket.Receive(buffer);//获取接受到的字节数组长度 if (r 0) break;//没有接受到信息就退出 string msgEncoding.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(bcDialogResult.OK)//判断是否点击了确认 { MessageBox.Show(保存成功); } else//点击了取消 { MessageBox.Show(取消了操作); } OpenFileDialog file new OpenFileDialog();//弹出框 file.ShowDialog();//选择文件 string url file.FileName;//文件路径五视觉方向1.正常的方向在视觉中的方向一般是这种的由-180 至 1802.360度的方向如果要设置为0-360的话可以先判断是否小于零然后加360即可即为例如double angle -18;//假设有一个角度为负18都 if(angle0) //如果小于0就代表为负角度 { angleangle360;//将角度360将为342度 }3.Visionpro将弧度转换为角度的公式弧度*(180/Math.PI);