📄 frmcommontask.cs
字号:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace San7GeneralScreen
{
public partial class FrmCommonTask : Form
{
private DataGridView _MainDataGridView = null;
public FrmCommonTask(DataGridView dgv)
{
InitializeComponent();
_MainDataGridView = dgv;
}
private void btnCancel_Click(object sender, EventArgs e)
{
this.Close();
}
private void FrmCommonTask_Load(object sender, EventArgs e)
{
foreach (DataGridViewColumn dgvc in _MainDataGridView.Columns)
{
cmbColumns.Items.Add(dgvc.Name);
}
txtModifyMax.Text = _MainDataGridView.Rows.Count.ToString();
}
public int ModifyType
{
get
{
if (rbAll.Checked)
{
return 0;
}
if (rbNull.Checked)
{
return 1;
}
if (rbNotNull.Checked)
{
return 2;
}
return 0;
}
}
private void btnOK_Click(object sender, EventArgs e)
{
Random rand = new Random();
int minValue = (int)Microsoft.VisualBasic.Conversion.Val(txtMinValue.Text);
int maxValue = (int)Microsoft.VisualBasic.Conversion.Val(txtMaxValue.Text);
int range = maxValue - minValue;
int minModify = (int)Microsoft.VisualBasic.Conversion.Val(txtModifyMin.Text);
int maxModify = (int)Microsoft.VisualBasic.Conversion.Val(txtModifyMax.Text);
int i = 0;
switch (cmbUpdateMethod.Text)
{
case "=":
for (i = minModify; i < maxModify; i++)
{
DataGridViewRow dgvr = _MainDataGridView.Rows[i];
if (CheckCondition(dgvr))
{
dgvr.Cells[cmbColumns.Text].Value = txtValue.Text;
}
}
break;
case "*":
for(i=minModify;i<maxModify;i++)
{
DataGridViewRow dgvr = _MainDataGridView.Rows[i];
if (CheckCondition(dgvr))
{
dgvr.Cells[cmbColumns.Text].Value = FindNumberFromString(rtNull(dgvr.Cells[cmbColumns.Text].Value)) * int.Parse(txtValue.Text);
}
}
break;
case "+":
for (i = minModify; i < maxModify; i++)
{
DataGridViewRow dgvr = _MainDataGridView.Rows[i];
if (CheckCondition(dgvr))
{
dgvr.Cells[cmbColumns.Text].Value = FindNumberFromString(rtNull(dgvr.Cells[cmbColumns.Text].Value)) + int.Parse(txtValue.Text);
}
}
break;
case "Rand+":
for (i = minModify; i < maxModify; i++)
{
DataGridViewRow dgvr = _MainDataGridView.Rows[i];
if (CheckCondition(dgvr))
{
dgvr.Cells[cmbColumns.Text].Value = FindNumberFromString(rtNull(dgvr.Cells[cmbColumns.Text].Value)) +minValue + rand.Next(range + 1);
}
}
break;
case "RandRange":
for (i = minModify; i < maxModify; i++)
{
DataGridViewRow dgvr = _MainDataGridView.Rows[i];
if (CheckCondition(dgvr))
{
dgvr.Cells[cmbColumns.Text].Value = minValue + rand.Next(range + 1);
}
}
break;
case "RandCustom":
List<string> lstCustom = new List<string>();
lstCustom.AddRange(txtCustom.Text.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries));
for (i = minModify; i < maxModify; i++)
{
DataGridViewRow dgvr = _MainDataGridView.Rows[i];
if (CheckCondition(dgvr))
{
dgvr.Cells[cmbColumns.Text].Value = lstCustom[rand.Next(lstCustom.Count)];
}
}
break;
}
this.Close();
}
private bool CheckCondition(DataGridViewRow dgvr)
{
switch (ModifyType)
{
case 1:
if (rtNull(dgvr.Cells[cmbColumns.Text].Value).Trim() != "")
{
return false;
}
break;
case 2:
if (rtNull(dgvr.Cells[cmbColumns.Text].Value).Trim() == "")
{
return false;
}
break;
default:
break;
}
return true;
}
private int FindNumberFromString(string context)
{
string strSwp = "";
for (int i = 0; i < context.Length; i++)
{
if (char.IsNumber(context, i))
{
strSwp += context.Substring(i, 1);
}
}
if (strSwp == "")
{
return 0;
}
return (int)Microsoft.VisualBasic.Conversion.Val(strSwp);
}
public string rtNull(object obj)
{
if (obj == null)
{
return "";
}
return obj.ToString();
}
private void cmbUpdateMethod_SelectedValueChanged(object sender, EventArgs e)
{
if (cmbUpdateMethod.Text.StartsWith("Rand"))
{
txtValue.ReadOnly = true;
if (cmbUpdateMethod.Text == "RandCustom")
{
panelCustom.Visible = true;
panelCustom.Location = new Point(panelRange.Location.X, panelRange.Location.Y);
panelRange.Visible = false;
}
else
{
panelCustom.Visible = false;
panelRange.Visible = true;
}
}
else
{
txtValue.ReadOnly = false;
panelRange.Visible = false;
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -