using LB_SmartVision.Forms.Pages.ProcessPage;
|
using LB_SmartVision.ProcessRun;
|
using LB_VisionControl;
|
using LB_VisionProcesses;
|
using Newtonsoft.Json;
|
using Newtonsoft.Json.Serialization;
|
using System.Collections.Concurrent;
|
using System.Data;
|
using System.Text;
|
using VisionControl.Forms;
|
using LB_SmartVision.Forms.Pages.SettingPage;
|
using LB_SmartVisionCommon;
|
using static System.Windows.Forms.VisualStyles.VisualStyleElement.StartPanel;
|
using LB_SmartVision.Forms.Pages.CameraPage;
|
using System.Security.Principal;
|
using System.Windows.Forms;
|
|
namespace LB_SmartVision.Forms.Pages.UserManagementPage
|
{
|
public partial class UserManagementEditPage : UserControl
|
{
|
public Action<string, LogInfoType> LogInfo;
|
|
public UserManagementEditPage()
|
{
|
Name = "UserManagementEditPage";
|
Text = "用户管理设置";
|
|
InitializeComponent();
|
InitializeDataGridView();
|
InitializeComboBox();
|
}
|
|
/// <summary>
|
/// 表格初始化
|
/// </summary>
|
private void InitializeDataGridView()
|
{
|
// 设置DataGridView列宽
|
dataGridViewUM.ColumnCount = 4;
|
|
int totalWidth = dataGridViewUM.ClientSize.Width;
|
int columnCount = dataGridViewUM.ColumnCount;
|
int columnWidth = totalWidth / columnCount;
|
|
// 设置最小宽度
|
int minWidth = 100; // 最小宽度
|
if (columnWidth < minWidth)
|
{
|
columnWidth = minWidth;
|
}
|
|
for (int i = 0; i < columnCount; i++)
|
{
|
dataGridViewUM.Columns[i].Width = columnWidth;
|
}
|
|
// 设置列标题
|
dataGridViewUM.Columns[0].Name = "用户名";
|
//dataGridViewUM.Columns[1].Name = "密码";
|
dataGridViewUM.Columns[1].Name = "姓名";
|
dataGridViewUM.Columns[2].Name = "工号";
|
dataGridViewUM.Columns[3].Name = "权限";
|
|
dataGridViewUM.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill;
|
|
// 禁止编辑单元格(可选)
|
dataGridViewUM.ReadOnly = true;
|
|
// 允许多行选择(可选)
|
dataGridViewUM.MultiSelect = false;
|
|
// 显示行标题(可选)
|
dataGridViewUM.RowHeadersVisible = true;
|
}
|
|
/// <summary>
|
/// 权限下拉框初始化
|
/// </summary>
|
private void InitializeComboBox()
|
{
|
// 添加权限选项
|
foreach (var item in Enum.GetValues(typeof(UserPermission)))
|
{
|
comboBoxPermission.Items.Add(item.ToString());
|
}
|
//comboBoxPermission.Items.Add("操作员");
|
|
// 设置默认选择项
|
comboBoxPermission.SelectedIndex = 0;
|
}
|
|
private void ClearInputFields()
|
{
|
textBoxUsername.Clear();
|
textBoxPassword.Clear();
|
textBoxName.Clear();
|
textBoxEmployeeID.Clear();
|
comboBoxPermission.SelectedIndex = 0;
|
textBoxUsername.Focus(); // 将焦点设置回用户名输入框
|
}
|
private void btnAdd_Click(object sender, EventArgs e)
|
{
|
// 验证输入
|
if (string.IsNullOrWhiteSpace(textBoxUsername.Text) ||
|
string.IsNullOrWhiteSpace(textBoxPassword.Text) ||
|
string.IsNullOrWhiteSpace(textBoxName.Text) ||
|
string.IsNullOrWhiteSpace(textBoxEmployeeID.Text))
|
{
|
MessageBox.Show("请填写所有必填字段!", "提示",
|
MessageBoxButtons.OK, MessageBoxIcon.Warning);
|
return;
|
}
|
|
// 创建新行数据
|
string[] row = new string[]
|
{
|
textBoxUsername.Text,
|
//textBoxPassword.Text, // 实际应用中密码应该加密
|
textBoxName.Text,
|
textBoxEmployeeID.Text,
|
comboBoxPermission.SelectedItem.ToString()
|
};
|
|
// 设置整个DataGridView的默认字体和颜色
|
dataGridViewUM.DefaultCellStyle.Font = new Font("宋体", 12);
|
dataGridViewUM.DefaultCellStyle.ForeColor = Color.Black; // 字体颜色
|
dataGridViewUM.DefaultCellStyle.BackColor = Color.White; // 背景颜色
|
|
// 添加新行到DataGridView
|
dataGridViewUM.Rows.Add(row);
|
|
// 清空输入框
|
ClearInputFields();
|
}
|
|
private void btnDel_Click(object sender, EventArgs e)
|
{
|
if (dataGridViewUM.SelectedRows.Count > 0)
|
{
|
// 确认删除
|
DialogResult result = MessageBox.Show("确定要删除选中的行吗?",
|
"确认删除", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
|
|
if (result == DialogResult.Yes)
|
{
|
foreach (DataGridViewRow row in dataGridViewUM.SelectedRows)
|
{
|
dataGridViewUM.Rows.Remove(row);
|
}
|
}
|
}
|
else
|
{
|
MessageBox.Show("请先选择要删除的行!", "提示",
|
MessageBoxButtons.OK, MessageBoxIcon.Information);
|
}
|
}
|
private int editingRowIndex = -1;
|
private bool isEditingMode = false;
|
private string originalButtonText = "修改";
|
private void btnEdit_Click(object sender, EventArgs e)
|
{
|
// 单元格可编辑
|
//dataGridViewUM.ReadOnly = false;
|
// 第一次点击:进入修改模式
|
if (!isEditingMode)
|
{
|
// 检查是否选择了行
|
if (dataGridViewUM.SelectedRows.Count == 0)
|
{
|
MessageBox.Show("请先选择要修改的行!", "提示",
|
MessageBoxButtons.OK, MessageBoxIcon.Warning);
|
return;
|
}
|
|
// 获取选中的行索引
|
editingRowIndex = dataGridViewUM.SelectedRows[0].Index;
|
|
// 将选中行的数据填充到TextBox中
|
FillFormWithRowData(editingRowIndex);
|
|
// 更改按钮文本
|
btnEdit.Text = "完成";
|
|
// 进入编辑模式
|
isEditingMode = true;
|
|
// 禁用添加按钮(可选)
|
btnAdd.Enabled = false;
|
|
// 设置焦点到用户名输入框
|
textBoxUsername.Focus();
|
|
// 高亮显示正在编辑的行(可选)
|
dataGridViewUM.Rows[editingRowIndex].DefaultCellStyle.BackColor = Color.LightYellow;
|
}
|
// 第二次点击:保存修改
|
else
|
{
|
// 验证输入
|
if (string.IsNullOrWhiteSpace(textBoxUsername.Text) ||
|
string.IsNullOrWhiteSpace(textBoxName.Text) ||
|
string.IsNullOrWhiteSpace(textBoxEmployeeID.Text))
|
{
|
MessageBox.Show("请填写所有必填字段!", "提示",
|
MessageBoxButtons.OK, MessageBoxIcon.Warning);
|
return;
|
}
|
|
// 更新DataGridView中的行数据
|
UpdateRowData(editingRowIndex);
|
|
// 恢复按钮文本
|
btnEdit.Text = originalButtonText;
|
|
// 退出编辑模式
|
isEditingMode = false;
|
editingRowIndex = -1;
|
|
// 启用添加按钮(可选)
|
btnAdd.Enabled = true;
|
|
// 恢复行颜色(可选)
|
dataGridViewUM.DefaultCellStyle.BackColor = Color.White;
|
|
// 清空输入框
|
ClearInputFields();
|
|
MessageBox.Show("修改完成!", "提示",
|
MessageBoxButtons.OK, MessageBoxIcon.Information);
|
}
|
}
|
|
private void FillFormWithRowData(int rowIndex)
|
{
|
if (rowIndex >= 0 && rowIndex < dataGridViewUM.Rows.Count)
|
{
|
DataGridViewRow row = dataGridViewUM.Rows[rowIndex];
|
|
// 填充用户名
|
if (row.Cells[0].Value != null)
|
textBoxUsername.Text = row.Cells[0].Value.ToString();
|
else
|
textBoxUsername.Text = "";
|
|
// 填充姓名
|
if (row.Cells[1].Value != null)
|
textBoxName.Text = row.Cells[1].Value.ToString();
|
else
|
textBoxName.Text = "";
|
|
// 填充工号
|
if (row.Cells[2].Value != null)
|
textBoxEmployeeID.Text = row.Cells[2].Value.ToString();
|
else
|
textBoxEmployeeID.Text = "";
|
|
// 填充权限
|
if (row.Cells[3].Value != null)
|
{
|
string permission = row.Cells[3].Value.ToString();
|
int index = comboBoxPermission.FindString(permission);
|
if (index >= 0)
|
comboBoxPermission.SelectedIndex = index;
|
else
|
comboBoxPermission.SelectedIndex = 0;
|
}
|
else
|
{
|
comboBoxPermission.SelectedIndex = 0;
|
}
|
|
// 密码框清空(通常不会显示密码)
|
textBoxPassword.Clear();
|
// 如果需要修改密码,可以添加注释或占位符
|
//textBoxPassword.PlaceholderText = "如需修改密码请填写";
|
}
|
}
|
|
private void UpdateRowData(int rowIndex)
|
{
|
if (rowIndex >= 0 && rowIndex < dataGridViewUM.Rows.Count)
|
{
|
DataGridViewRow row = dataGridViewUM.Rows[rowIndex];
|
|
// 更新用户名
|
row.Cells[0].Value = textBoxUsername.Text;
|
|
// 如果密码不为空,则更新密码(实际应用中应加密)
|
if (!string.IsNullOrWhiteSpace(textBoxPassword.Text))
|
{
|
// 这里可以添加密码加密逻辑
|
// row.Cells[1].Value = EncryptPassword(textBoxPassword.Text);
|
}
|
|
// 更新姓名
|
row.Cells[1].Value = textBoxName.Text;
|
|
// 更新工号
|
row.Cells[2].Value = textBoxEmployeeID.Text;
|
|
// 更新权限
|
row.Cells[3].Value = comboBoxPermission.SelectedItem.ToString();
|
}
|
}
|
}
|
}
|