📄 queryfrm.cs
字号:
// Handle the Calender Cell
DataGridView dg = (DataGridView)sender;
int lastColumnIndex = dg.ColumnCount - 1;
if (calenderFlag && cellIsUpdated)
{
// last cell accessed was calender cell
// make datagridview readonly
dataGridViewQuery.ReadOnly = true;
calenderFlag = false;
}
else
{
// last cell accessed wasn't Calender
// nothing to do
}
if (e.RowIndex > 0) // make sure end user updates only rows from line #1
{
//to make sure previous cell is updated
bool previousCellIsUpdated = false;
if (0 < e.ColumnIndex)
{
if (this.dataGridViewQuery[e.ColumnIndex - 1, e.RowIndex].Value != null && this.dataGridViewQuery[e.ColumnIndex - 1, e.RowIndex].Value.ToString() != string.Empty)
previousCellIsUpdated = true;
}
if (0 == e.ColumnIndex)
{
if (this.dataGridViewQuery[lastColumnIndex, e.RowIndex - 1].Value != null && this.dataGridViewQuery[lastColumnIndex, e.RowIndex - 1].Value.ToString() != string.Empty)
previousCellIsUpdated = true;
}
// Allow User to Edit only if the previous cell is updated
if (previousCellIsUpdated)
{
if (cell_list != null)
{
bool cellClickedBefore = false;
foreach (DataGVCell dataGVCell in cell_list)
{
if (dataGVCell._rowIndex == e.RowIndex || dataGVCell._columnIndex == e.ColumnIndex)
{
if (dataGVCell._cellClickedBefore)
{
cellClickedBefore = true;
break;
}
}
}
if (dataGridViewQuery.Rows[e.RowIndex].Cells[e.ColumnIndex].EditType.Name.Equals("DataGridViewTextBoxEditingControl") || dataGridViewQuery.Rows[e.RowIndex].Cells[e.ColumnIndex].EditType.Name.Equals("CCalendarEditingControl") || dataGridViewQuery.Rows[e.RowIndex].Cells[e.ColumnIndex].EditType.Name.Equals("CDataGridViewTreeViewComboBoxEditingControl") || cellClickedBefore)
{
#region commented
/*
// Checked for ComboBox
#region ComboBox
if (0 == e.ColumnIndex || 1 == e.ColumnIndex)
{
CDataGridViewComboBoxCell cell = new CDataGridViewComboBoxCell();
dataGridViewQuery.Rows[e.RowIndex].Cells[e.ColumnIndex] = cell;
dataGridViewQuery.Rows[e.RowIndex].Cells[e.ColumnIndex].ReadOnly = false;
dataGridViewQuery.ReadOnly = false;
cell.Items.Clear();
cell.Items.Add("And");
cell.Items.Add("Or");
cellIsUpdated = false;
// When Cell_Clicked was revisited
foreach (DataGVCell dataGVCell in cell_list)
{
if (dataGVCell._cellValue.Equals(""))
{
dataGVCell._cellClickedBefore = false;
break;
}
}
}
#endregion ComboBox
// Checked for Calender
#region Calender
if (3 == e.ColumnIndex)
{
CCalenderCell cell = new CCalenderCell();
cell.Value = DateTime.Now;
dataGridViewQuery.Rows[e.RowIndex].Cells[e.ColumnIndex] = cell;
dataGridViewQuery.Rows[e.RowIndex].Cells[e.ColumnIndex].ReadOnly = false;
dataGridViewQuery.ReadOnly = false;
calenderFlag = true;
cellIsUpdated = false;
foreach (DataGVCell dataGVCell in cell_list)
{
if (dataGVCell._columnIndex == e.ColumnIndex && dataGVCell._rowIndex == e.RowIndex)
{
dataGVCell._isUpdated = true;
dataGVCell._cellValue = cell.Value.ToString();
cellIsUpdated = true;
break;
}
}
}
#endregion Calender
// Checked for TreeViewDropDownList
#region TreeViewDropDownList
if (2 == e.ColumnIndex)
{
CDataGridViewTreeViewComboBoxCell cell = new CDataGridViewTreeViewComboBoxCell();
dataGridViewQuery.Rows[e.RowIndex].Cells[e.ColumnIndex] = cell;
dataGridViewQuery.Rows[e.RowIndex].Cells[e.ColumnIndex].ReadOnly = false;
dataGridViewQuery.ReadOnly = false;
cell.Add("WorkSpace.xml");
cellIsUpdated = false;
foreach (DataGVCell dataGVCell in cell_list)
{
if (dataGVCell._cellValue.Equals(""))
{
dataGVCell._cellClickedBefore = false;
break;
}
}
}
#endregion TreeViewDropDownList
*/
#endregion commented
#region Columns of the Grid
if (3 == e.ColumnIndex)
{
// Check if it is DateTime
string columnNameString = dataGridViewQuery.Rows[e.RowIndex].Cells[e.ColumnIndex - 2].Value.ToString();
System.Type type = null;
type = objDataColumns._columnNameType[columnNameString];
if (type.Name.Equals("DateTime"))
{
//Show Calender
CCalenderCell cell = new CCalenderCell();
cell.Value = DateTime.Now;
dataGridViewQuery.Rows[e.RowIndex].Cells[e.ColumnIndex] = cell;
dataGridViewQuery.Rows[e.RowIndex].Cells[e.ColumnIndex].ReadOnly = false;
dataGridViewQuery.ReadOnly = false;
calenderFlag = true;
cellIsUpdated = false;
foreach (DataGVCell dataGVCell in cell_list)
{
if (dataGVCell._cellValue.Equals(""))
{
dataGVCell._cellClickedBefore = false;
break;
}
}
}
if (type.Name.Equals("Int32") || type.Name.Equals("String"))
{
if (columnNameString.Equals("WorkSpace"))
{
CDataGridViewTreeViewComboBoxCell cell = new CDataGridViewTreeViewComboBoxCell();
dataGridViewQuery.Rows[e.RowIndex].Cells[e.ColumnIndex] = cell;
dataGridViewQuery.Rows[e.RowIndex].Cells[e.ColumnIndex].ReadOnly = false;
dataGridViewQuery.ReadOnly = false;
cell.Add("WorkSpace.xml");
cellIsUpdated = false;
foreach (DataGVCell dataGVCell in cell_list)
{
if (dataGVCell._cellValue.Equals(""))
{
dataGVCell._cellClickedBefore = false;
break;
}
}
}
else
{
//Else Column Values
CDataGridViewComboBoxCell cell = new CDataGridViewComboBoxCell();
dataGridViewQuery.Rows[e.RowIndex].Cells[e.ColumnIndex] = cell;
dataGridViewQuery.Rows[e.RowIndex].Cells[e.ColumnIndex].ReadOnly = false;
dataGridViewQuery.ReadOnly = false;
cell.Items.Clear();
for (int c = 0; c < objDataColumns.column_collection.Count; c++)
{
if (objDataColumns.column_collection[c].ColumnName.Equals(columnNameString))
{
for (int v = 0; v < objDataColumns.column_collection[c]._columnValues.Count; v++)
{
cell.Items.Add(objDataColumns.column_collection[c]._columnValues[v].ToString());
}
}
}
cellIsUpdated = false;
// When Cell_Clicked was revisited
foreach (DataGVCell dataGVCell in cell_list)
{
if (dataGVCell._cellValue.Equals(""))
{
dataGVCell._cellClickedBefore = false;
break;
}
}
}
}
}
if (2 == e.ColumnIndex)
{
// Operator
string columnNameString = dataGridViewQuery.Rows[e.RowIndex].Cells[e.ColumnIndex - 1].Value.ToString();
CDataGridViewComboBoxCell cell = new CDataGridViewComboBoxCell();
System.Type type = null;
type = objDataColumns._columnNameType[columnNameString];
dataGridViewQuery.Rows[e.RowIndex].Cells[e.ColumnIndex] = cell;
dataGridViewQuery.Rows[e.RowIndex].Cells[e.ColumnIndex].ReadOnly = false;
dataGridViewQuery.ReadOnly = false;
cell.Items.Clear();
if (type.Name.Equals("Int32"))
{
for (int n = 0; n < _operators.numericOperator.Count; n++)
cell.Items.Add(_operators.numericOperator[n].ToString());
}
else
{
for (int s = 0; s < _operators.stringOperator.Count; s++)
cell.Items.Add(_operators.stringOperator[s].ToString());
}
cellIsUpdated = false;
// When Cell_Clicked was revisited
foreach (DataGVCell dataGVCell in cell_list)
{
if (dataGVCell._cellValue.Equals(""))
{
dataGVCell._cellClickedBefore = false;
break;
}
}
}
if (1 == e.ColumnIndex)
{
CDataGridViewComboBoxCell cell = new CDataGridViewComboBoxCell();
dataGridViewQuery.Rows[e.RowIndex].Cells[e.ColumnIndex] = cell;
dataGridViewQuery.Rows[e.RowIndex].Cells[e.ColumnIndex].ReadOnly = false;
dataGridViewQuery.ReadOnly = false;
cell.Items.Clear();
for (int c = 0; c < objDataColumns.column_collection.Count; c++)
{
cell.Items.Add(objDataColumns.column_collection[c].ColumnName);
}
cellIsUpdated = false;
// When Cell_Clicked was revisited
foreach (DataGVCell dataGVCell in cell_list)
{
if (dataGVCell._cellValue.Equals(""))
{
dataGVCell._cellClickedBefore = false;
break;
}
}
}
if (0 == e.ColumnIndex)
{
CDataGridViewComboBoxCell cell = new CDataGridViewComboBoxCell();
dataGridViewQuery.Rows[e.RowIndex].Cells[e.ColumnIndex] = cell;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -