# CSharpPicker **Repository Path**: darrenliu/csharp-picker ## Basic Information - **Project Name**: CSharpPicker - **Description**: CSharpPicker - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-01-08 - **Last Updated**: 2026-01-09 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # CShartDemo 项目完整说明文档(适合纯小白) 本文档面向不熟悉编程的读者,帮助您了解本项目的作用、如何编译运行、注意事项,以及项目结构与开发/修改新功能的基本步骤。 --- ## 一、项目简介说明(概述) - **项目名称**:`CShartDemo`,这是一个基于 .NET Framework 的 C# 示例/演示程序,用于演示颜色测量仪器的通信接口和功能。 - **主要功能**:设备通信、测量/上传/删除标样、试样数据、显示测量结果等。 --- ## 二、主窗口说明 ⭐ ### **哪个是主窗口?** **`MainFrame` 就是主窗口!** - **文件位置**: - `MainFrame.cs` - 主窗口的业务逻辑代码 - `MainFrame.Designer.cs` - 主窗口的界面设计代码(自动生成) - `MainFrame.resx` - 主窗口的资源文件(文本、布局等) - **如何确认**: - 打开 `Program.cs` 文件,您会看到: ```csharp Application.Run(new MainFrame()); ``` 这行代码就是启动主窗口的! - **主窗口功能**: - 连接设备(USB 或蓝牙) - 获取设备信息和状态 - 测量标样和试样 - 上传/下载/删除标样和试样数据 - 显示测量结果和颜色数据 - 校准设备(黑校准、白校准) --- ## 三、如何编译运行(纯小白步骤) ### 要求环境 - Windows 操作系统 - 安装 Visual Studio(推荐 2019 或 2022),并确保安装了 .NET 桌面开发工作负载(项目目标为 `.NET Framework 4.8`) ### 使用 Visual Studio(推荐方式) 1. **打开项目**: - 在文件资源管理器中,双击项目目录下的 `CShartDemo.csproj` 文件,会自动用 Visual Studio 打开 - 或者打开 Visual Studio,选择"文件 -> 打开 -> 项目/解决方案",然后选择项目文件 2. **恢复依赖**: - Visual Studio 打开后,可能会提示恢复 NuGet 包,选择"还原"或"自动还原"即可 3. **编译项目**: - 在 Visual Studio 中选择菜单 `生成 -> 生成解决方案`,或按 `Ctrl+Shift+B` 4. **运行程序**: - 编译成功后,按 `F5` 开始调试运行,或按 `Ctrl+F5` 开始不调试运行,程序窗口就会弹出 - 或者到项目目录下的 `bin\Debug\` 或 `bin\Release\` 找到生成的可执行文件(`.exe`),双击也可以运行 ### 命令行方式(高级用户) - 使用 `MSBuild` 编译: ``` msbuild CShartDemo.csproj /p:Configuration=Debug ``` --- ## 四、注意事项与常见问题(含解决方案) - **如果提示目标框架不匹配**:请确认环境已安装 `.NET Framework 4.8` - **如果缺少 NuGet 包**:Visual Studio 会提示还原,按提示操作即可;或手动执行"工具 -> NuGet 包管理器 -> 程序包管理器控制台",输入 `Restore-Packages` 来还原 - **如果编译失败报错**:请先查看 Visual Studio 的"输出(Output)"窗口和"错误列表(Error List)"窗口,错误信息通常会指示问题所在 - **如果程序无法打开窗口**:通常是窗口构造函数执行时出错(如未加载的依赖项、设备未连接等),将初始化代码移到窗口的 `Load` 事件中,在窗口显示后再执行 --- ## 五、项目目录下各文件/文件夹说明(通用版) - **`*.cs`**:C# 源代码文件,包含业务逻辑代码,其中 `Program.cs` 通常包含程序入口的 `Main` 方法 - **`*.Designer.cs`**:由 WinForms 设计器自动生成的文件,包含初始化控件与布局,一般不需要频繁手动编辑,否则可能被覆盖修改 - **`*.csproj`**:项目文件,包含项目配置、引用的库等 - **`bin/`**:编译输出目录,包含可执行文件(`.exe`)和引用的动态库(`.dll`) - **`obj/`**:中间构建文件,编译器使用,通常不需要关注 - **`Properties\Resources.resx`**:资源文件,包含字符串、图片等,程序可通过 `Resources` 访问 - **`*.resx`**:资源文件,包含本地化文本等 - **`.sln`**:解决方案文件,用于 Visual Studio 组织多个项目 --- ## 六、各个源文件详细说明 ### 1. **Program.cs** - 程序入口 - **作用**:程序的启动入口,包含 `Main` 方法 - **功能**: - 启用视觉样式 - 创建并运行主窗口 `MainFrame` - **关键代码**: ```csharp Application.Run(new MainFrame()); ``` ### 2. **MainFrame.cs** - 主窗口业务逻辑 ⭐ 主窗口 - **作用**:主窗口的主要业务逻辑和事件处理(`partial class MainFrame : Form`) - **功能**: - 处理按钮点击事件(连接设备、获取信息、测量等) - 与 `TsComm` 库通信控制设备 - 管理标样和试样列表 - 更新测量结果显示 - **是否为主窗口**:**是**。程序启动时通过 `Program.cs` 中的 `Application.Run(new MainFrame())` 调用此窗口 ### 3. **MainFrame.Designer.cs** - 主窗口界面设计 - **作用**:由 Visual Studio WinForms 设计器自动生成,包含 `InitializeComponent()` 方法,在此方法中初始化窗口上的控件(按钮、ListView、ComboBox 等)及其属性 - **功能**:定义窗口布局、控件属性。通常通过设计器可视化编辑,通过拖拽修改 - **设计建议**:如需修改控件和布局,应通过设计器修改,此文件会自动更新。不要直接手动编辑,否则可能被覆盖 ### 4. **BleSlavesSelectionDlg.cs** - 蓝牙设备选择对话框 - **作用**:用于选择蓝牙设备的对话框窗口 - **功能**: - 扫描可用的串口 - 扫描蓝牙从设备 - 选择要连接的蓝牙设备(MAC 地址) - **使用场景**:当用户选择通过蓝牙连接设备时,会弹出此对话框 ### 5. **BleSlavesSelectionDlg.Designer.cs** - 蓝牙对话框界面设计 - **作用**:蓝牙设备选择对话框的界面设计代码(自动生成) - **功能**:定义对话框的布局和控件 ### 6. **ToolStripRadioButtonMenuItem.cs** - 自定义菜单项控件 - **作用**:自定义的单选按钮菜单项控件 - **功能**: - 在菜单中显示单选按钮样式的选项 - 支持分组,同一组内互斥选择 - 用于颜色空间、观察者、光源等选项的选择 ### 7. **Properties\AssemblyInfo.cs** - 程序集信息 - **作用**:定义程序集的元数据信息(版本、公司、版权等) ### 8. **Properties\Resources.resx** - 资源文件 - **作用**:存储程序的文本、图片等资源 - **功能**:支持多语言,程序可通过 `Resources` 类访问这些资源 ### 9. **Properties\Settings.settings** - 应用程序设置 - **作用**:存储应用程序的用户设置(如窗口位置、用户偏好等) ### 10. **CShartDemo.csproj** - 项目配置文件 - **作用**:定义项目配置、引用的库、编译选项等 - **重要引用**: - `TSCommClr.dll` - 设备通信库,提供硬件通信的 API --- ## 七、如何进行窗口设计(Visual Studio 拖拽式编程)🎨 如果您想修改主窗口的界面(添加按钮、调整布局等),可以使用 Visual Studio 的可视化设计器,通过拖拽方式编辑窗口 `MainFrame`: ### 步骤详解: 1. **打开设计器**: - 在 Visual Studio 中打开项目,确保解决方案资源管理器(Solution Explorer)可见 - 在解决方案资源管理器中定位到 `MainFrame.cs` 文件 - 右键点击 `MainFrame.cs` -> 选择 `查看设计器(View Designer)` - 或者选中文件后按 `Shift+F7` 快捷键 2. **查看设计界面**: - 打开后,您会看到窗口的可视化设计界面,这就是程序运行时的窗口样子 3. **添加控件**: - 在 Visual Studio 左侧找到 `工具箱(Toolbox)` 窗口(如果没有显示,可以通过菜单"视图 -> 工具箱"打开) - 从工具箱中选择控件(如 `Button`、`ListView`、`ComboBox`、`GroupBox`、`Label`、`TextBox` 等) - 直接拖拽到窗口上,放在想要的位置 4. **设置控件属性**: - 选中窗口上的控件,在右侧的 `属性(Properties)` 窗口中可以设置控件的各种属性: - **`Name`**:控件在代码中的变量名(很重要!),例如 `buttonConnect`、`standardsListView` - **`Text`**:控件显示的文本 - **`Anchor`** / **`Dock`**:控制控件在窗口调整大小时如何跟随/停靠 - **`Modifiers`**:访问修饰符,如果需要从其他类访问控件,可以将 `private` 改为 `public` 或 `protected` - **`Size`**:控件大小 - **`Location`**:控件位置 - 等等... 5. **添加事件处理**: - **方法一**:双击控件,会自动生成该控件默认事件的处理函数(如按钮的 `Click` 事件) - **方法二**:在 `Properties` 窗口中点击"事件"图标(闪电图标),双击某个事件名称,会自动生成事件处理函数 - 生成的事件处理函数会出现在 `MainFrame.cs` 文件中,您可以在那里编写处理逻辑 6. **保存设计**: - 保存后,Visual Studio 会自动更新 `MainFrame.Designer.cs` 文件,您不需要手动编辑这个文件 7. **编写业务逻辑**: - 在 `MainFrame.cs` 的构造函数中,`InitializeComponent()` 调用之后,可以添加您自己的初始化代码(如加载数据、设置事件处理等) ### 重要注意事项: - **不要在构造函数中执行耗时操作**:如果窗口构造函数执行时出错(如未加载的依赖项、设备未连接等),将初始化代码移到窗口的 `Form.Load` 事件中,在窗口显示后再执行 - **不要直接手动编辑 Designer.cs**:直接手动编辑 `MainFrame.Designer.cs` 可能会被设计器覆盖,应通过设计器修改布局 - **如果设计器无法打开**:先检查错误列表,修复编译错误后再打开设计器 ### 设计器界面说明: - **设计视图**:显示窗口的可视化布局 - **工具箱**:左侧,包含所有可用的控件 - **属性窗口**:右侧,显示选中控件的属性 - **解决方案资源管理器**:显示项目文件结构 - **代码视图**:双击 `MainFrame.cs` 可以查看/编辑代码 --- ## 八、项目结构总结 ``` CSharpPicker/ ├── MainFrame.cs # ⭐ 主窗口业务逻辑 ├── MainFrame.Designer.cs # 主窗口界面设计(自动生成) ├── MainFrame.resx # 主窗口资源文件 ├── Program.cs # 程序入口 ├── BleSlavesSelectionDlg.cs # 蓝牙设备选择对话框 ├── BleSlavesSelectionDlg.Designer.cs # 对话框界面设计 ├── ToolStripRadioButtonMenuItem.cs # 自定义菜单控件 ├── CShartDemo.csproj # 项目配置文件 ├── Properties/ # 属性文件夹 │ ├── AssemblyInfo.cs # 程序集信息 │ ├── Resources.resx # 资源文件 │ └── Settings.settings # 应用设置 ├── bin/ # 编译输出目录 │ └── Debug/ # 调试版本 │ └── CShartDemo.exe # 可执行文件 └── obj/ # 中间文件(可忽略) ``` --- ## 九、快速开始指南 1. **打开项目**:双击 `CShartDemo.csproj` 用 Visual Studio 打开 2. **查看主窗口**:在解决方案资源管理器中找到 `MainFrame.cs`,右键选择"查看设计器" 3. **运行程序**:按 `F5` 运行,查看效果 4. **修改界面**:在设计器中拖拽控件,设置属性 5. **添加功能**:双击控件添加事件处理,在 `MainFrame.cs` 中编写代码 --- ## 十、常见操作示例 ### 添加一个新按钮 1. 打开 `MainFrame.cs` 的设计器 2. 从工具箱拖拽一个 `Button` 到窗口上 3. 在属性窗口中设置: - `Name`: `buttonMyButton` - `Text`: `我的按钮` 4. 双击按钮,自动生成 `buttonMyButton_Click` 事件处理函数 5. 在 `MainFrame.cs` 中编写按钮点击后的逻辑代码 ### 修改窗口标题 1. 打开 `MainFrame.cs` 的设计器 2. 点击窗口的空白区域(不要点击任何控件) 3. 在属性窗口中找到 `Text` 属性 4. 修改为您想要的标题,如"我的颜色测量程序" --- ## 总结 - **主窗口**:`MainFrame` 是主窗口,由 `Program.cs` 启动 - **窗口设计**:使用 Visual Studio 的设计器,通过拖拽方式修改界面 - **代码编辑**:在 `MainFrame.cs` 中编写业务逻辑 - **设计文件**:`MainFrame.Designer.cs` 由设计器自动生成,不要手动编辑 希望这份文档能帮助您快速上手项目!如有问题,请查看 Visual Studio 的错误列表和输出窗口获取更多信息。