سلام
میتونی اون column رو با این column به نام TextBoxColumn که کدش هست جایگزین کنی
using System;
using System.Collections.Generic;
using System.Text;
using System.Windows.Forms;
namespace TextBoxColumnFilter
{
publicclass TextBoxColumn : DataGridViewColumn
{
public TextBoxColumn() : base(newTextBoxCell())
{
}
publicoverrideDataGridViewCell CellTemplate
{
get
{
returnbase.CellTemplate;
}
set
{
if (value != null && !value.GetType().IsAssignableFrom(typeof(TextBoxCell)))
{
thrownewInvalidCastException("Error");
}
base.CellTemplate = value;
}
}
}
publicclassTextBoxCell : DataGridViewTextBoxCell
{
public TextBoxCell() : base()
{
}
publicoverrideType EditType
{
get
{
returntypeof(EditTextBoxCell);
}
}
publicoverridevoid InitializeEditingControl(int rowIndex, object initialFormattedValue, DataGridViewCellStyle dataGridViewCellStyle)
{
base.InitializeEditingControl(rowIndex, initialFormattedValue, dataGridViewCellStyle);
EditTextBoxCell editingControl = base.DataGridView.EditingControl asEditTextBoxCell;
if (editingControl != null)
{
editingControl.BorderStyle = BorderStyle.None;
editingControl.AcceptsReturn = editingControl.Multiline = dataGridViewCellStyle.WrapMode == DataGridViewTriState.True;
editingControl.MaxLength = this.MaxInputLength;
string str = initialFormattedValue asstring;
if (str == null)
{
editingControl.Text = string.Empty;
}
else
{
editingControl.Text = str;
}
}
}
}
publicclassEditTextBoxCell : DataGridViewTextBoxEditingControl
{
public EditTextBoxCell() : base()
{
this.KeyPress += newKeyPressEventHandler(EditTextBoxCell_KeyPress);
}
void EditTextBoxCell_KeyPress(object sender, KeyPressEventArgs e)
{
if (!char.IsDigit(e.KeyChar) && ((int)e.KeyChar) != 8)
e.KeyChar = char.MinValue;
}
}
}
برای جابجا کردن Column هم میتونی از تابع ساده زیر استفاده کنی که درکد فرم هست
publicvoid AddMeTextBoxColumn(string ColumnName, string HeaderText)
{
int ColumnDisplayIndex = dataGridView1.Columns[ColumnName].DisplayIndex;
dataGridView1.Columns.Remove(ColumnName);
TextBoxColumn column_addcombo = newTextBoxColumn();
column_addcombo.DataPropertyName = ColumnName;
column_addcombo.Name = ColumnName;
column_addcombo.HeaderText = HeaderText;
column_addcombo.DisplayIndex = ColumnDisplayIndex;
dataGridView1.Columns.Add(column_addcombo);
}