Files
NonWovenFabric/WindowsFormsApp6/快速测试手动输入.txt

174 lines
6.0 KiB
Plaintext
Raw Normal View History

2025-12-31 09:43:35 +08:00
快速测试手动输入功能
======================
## 5步快速测试
### 步骤1启动程序
- 运行程序
- 看到6行数据的表格
### 步骤2生成模拟数据
- 点击"模拟数据"按钮
- 吸水时间行会显示数据试样次数1列
- 吸芯高度行会显示数据所有3列
### 步骤3输入吸芯高度试样次数1列
- 找到"吸芯高度mm"行
- 双击"试样1"下的"1"列(第一列)
- 输入60.50
- 按Enter键
### 步骤4输入吸芯高度试样次数2列
- 找到"吸芯高度mm"行
- 双击"试样2"下的"2"列(中间列)
- 输入65.75
- 按Enter键
### 步骤5输入吸芯高度试样次数3列
- 找到"吸芯高度mm"行
- 双击"试样3"下的"3"列(第三列)
- 输入70.25
- 按Enter键
### 步骤6查看自动计算
- 查看"芯吸速率"行的"试样1、2、3"下的"3"列
- 应该显示计算结果
- 查看"平均芯吸速率"行
- 查看"标准偏差"行
## 预期结果
```
┌─────────────┬────┬────┬────┬────┬────┬────┐
│ 序号 │试样1│试样2│试样3│试样4│试样5│
│ ├─┬─┬─┼─┬─┬─┼─┬─┬─┼─┬─┬─┼─┬─┬─┤
│ │1│2│3│1│2│3│1│2│3│1│2│3│1│2│3│
├─────────────┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┤
│吸水时间(s) │30│ │ │31│ │ │32│ │ │33│ │ │34│ │ │
├─────────────┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┤
│吸芯高度(mm) │60│65│70│60│65│70│60│65│70│60│65│70│60│65│70│
│ │↑│↑│↑│↑│↑│↑│↑│↑│↑│↑│↑│↑│↑│↑│↑│
│ │可│可│可│可│可│可│可│可│可│可│可│可│可│可│可│
│ │编│编│编│编│编│编│编│编│编│编│编│编│编│编│编│
│ │辑│辑│辑│辑│辑│辑│辑│辑│辑│辑│辑│辑│辑│辑│辑│
├─────────────┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┤
│芯吸速率 │ │ │120│ │126│ │131│ │136│ │141│
│(mm/min) │ │ │↑ │ │ │↑ │ │ │↑ │ │ │↑ │ │ │↑ │
│ │ │ │自│ │ │自│ │ │自│ │ │自│ │ │自│
│ │ │ │动│ │ │动│ │ │动│ │ │动│ │ │动│
│ │ │ │计│ │ │计│ │ │计│ │ │计│ │ │计│
│ │ │ │算│ │ │算│ │ │算│ │ │算│ │ │算│
└─────────────┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┘
```
## 检查点
✅ 可以双击"吸芯高度"行的试样次数1列
✅ 可以双击"吸芯高度"行的试样次数2列
✅ 可以双击"吸芯高度"行的试样次数3列
✅ 可以输入数字
✅ 按Enter后数字正确显示
✅ 芯吸速率自动计算(使用平均吸芯高度)
✅ 平均值自动更新
✅ 标准偏差自动更新
✅ 可以继续编辑其他试样
✅ 隔行变色效果正常
✅ 其他行不可编辑
## 如果无法编辑
### 检查1是否选对了行
- 必须是"吸芯高度mm"行
- 不是其他行(吸水时间、芯吸速率等都不可编辑)
### 检查2是否双击了
- 需要双击单元格进入编辑模式
- 或者单击后按F2键
### 检查3CellBeginEdit事件
- 确认CellBeginEdit事件已注册
- 确认只有吸芯高度行允许编辑
## 代码检查
如果功能不正常,检查以下代码:
### 1. 列定义
```csharp
// 所有列都应该设置为可编辑
dataGridView1.Columns.Add(new DataGridViewTextBoxColumn
{
Name = $"试样{i}_1",
ReadOnly = false, // ← 必须是false
...
});
```
### 2. CellBeginEdit事件
```csharp
// 动态控制哪些单元格可以编辑
private void DataGridView1_CellBeginEdit(object sender, DataGridViewCellCancelEventArgs e)
{
if (e.RowIndex >= 0 && e.ColumnIndex > 0)
{
string rowName = dataGridView1.Rows[e.RowIndex].Cells["序号"].Value?.ToString() ?? "";
// 吸芯高度mm行 - 所有列都可以编辑
if (rowName == "吸芯高度mm")
{
return; // 允许编辑
}
// 其他行 - 取消编辑
e.Cancel = true;
}
}
```
### 3. CellValueChanged事件
```csharp
// 吸芯高度行的任何修改都触发重新计算
private void DataGridView1_CellValueChanged(object sender, DataGridViewCellEventArgs e)
{
if (e.RowIndex >= 0 && e.ColumnIndex >= 0)
{
string rowName = dataGridView1.Rows[e.RowIndex].Cells["序号"].Value?.ToString() ?? "";
if (rowName == "吸芯高度mm")
{
RecalculateRow(e.RowIndex);
}
}
}
```
## 调试建议
如果遇到问题,可以:
1. 在CellBeginEdit事件中添加断点
2. 检查rowName是否正确识别为"吸芯高度mm"
3. 检查e.Cancel是否正确设置
4. 在CellValueChanged事件中添加断点
5. 检查计算逻辑是否正确执行
## 成功标志
当你看到以下情况时,说明功能正常:
1. ✅ 双击吸芯高度行的任意列后出现光标
2. ✅ 可以输入数字
3. ✅ 按Enter后数字保留
4. ✅ 芯吸速率列显示计算结果
5. ✅ 平均值和标准偏差更新
6. ✅ 其他行无法编辑
7. ✅ 可以导出到Excel
8. ✅ Excel中数据正确显示
## 重要提示
**新功能**吸芯高度行的所有3列试样次数1、2、3都可以编辑
- 这样可以更灵活地输入数据
- 系统会自动计算平均值用于芯吸速率计算
- 其他行保持只读,不可编辑