如何获得datagridview中当前编辑单元格中的已选择数据?
请问如何获得datagridview中当前编辑单元格中的已选择数据?如某一单元格中包含数据“12345”,我只想获得123,如何实现?
using System; using System.Data; using System.Windows.Forms; namespace GetSelectionInDataGridViewEditingCell { public partial class FormMain : Form { private readonly TextBox _textBox; public FormMain() { InitializeComponent(); _textBox = new TextBox { Visible = false }; _textBox.KeyDown += TextBox_KeyDown; _textBox.KeyUp += TextBox_KeyUp; _textBox.MouseMove += TextBox_MouseMove; _textBox.LostFocus += TextBox_LostFocus; Controls.Add(_textBox); _textBox.BringToFront(); var table = new DataTable(); for (var i = 0; i < 10; i++) table.Columns.Add(string.Concat("C", i), typeof (int)); var random = new Random(DateTime.Now.Millisecond); for (var i = 0; i < 10; i++) { var values = new object[10]; for (var q = 0; q < 10; q++) values[q] = random.Next(int.MinValue, int.MaxValue); table.Rows.Add(values); } Dgv.DataSource = table; Dgv.CellBeginEdit += Dgv_CellBeginEdit; } void Dgv_CellBeginEdit(object sender, DataGridViewCellCancelEventArgs e) { _textBox.Text = Dgv.CurrentCell.EditedFormattedValue.ToString(); var R = Dgv.GetCellDisplayRectangle(Dgv.CurrentCell.ColumnIndex, Dgv.CurrentCell.RowIndex, false); _textBox.SetBounds(R.X + Dgv.Location.X, R.Y + Dgv.Location.Y, R.Width, R.Height); _textBox.Visible = true; } void TextBox_KeyDown(object sender, KeyEventArgs e) { if (e.KeyCode != Keys.Escape && e.KeyCode != Keys.Enter) return; switch (e.KeyCode) { case Keys.Enter: { int value; if (int.TryParse(_textBox.Text, out value)) Dgv.CurrentCell.Value = int.Parse(_textBox.Text); } break; } _textBox.Visible = false; } void TextBox_KeyUp(object sender, KeyEventArgs e) { Label.Text = _textBox.SelectedText; } void TextBox_LostFocus(object sender, EventArgs e) { _textBox.Visible = false; } void TextBox_MouseMove(object sender, MouseEventArgs e) { Label.Text = _textBox.SelectedText; } } }