Как я могу выбрать значение в текстовом поле символ за символом Как текстовое поле автозаполнения HDPOS
Я пытался При загрузке страницы
private void loadproductName()
{
DataTable dt = _poshelper.getproductName("Bill_Select_ProductName");
if (dt.Rows.Count != 0)
{
string[] postSource = dt
.AsEnumerable()
.Select<System.Data.DataRow, String>(x => x.Field<String>("UniqueName"))
.ToArray();
var source = new AutoCompleteStringCollection();
source.AddRange(postSource);
txtItemName.AutoCompleteCustomSource = source;
}
}
В отпуск
private void txtItemName_Leave(object sender, EventArgs e)
{
if (!string.IsNullOrEmpty(txtItemName.Text))
{
DataSet ds1 = _poshelper.getproductNameExistWhileLeave(txtItemName.Text);
if (ds1.Tables[0].Rows.Count == 0)
{
txtItemName.Text = "";
txtItemName.Focus();
}
else
{
loadLeave(ds1);
txtItemName.Focus();
}
}
}
мне нужно
Если я удалю символ с помощью backspace, он удалит навсегда
Мне нужно 2-е изображение, если я удалю, значит, мне нужно, чтобы содержимое оставалось в текстовом поле
Обновлять
дополнительные пояснения из комментариев
The String in the textbox it should not be deleted if i press back space Key. Instead it should select each character.Every time i press backspace
Строка в текстовом поле не должна удаляться, если я нажму клавишу пробела. Вместо этого он должен выбирать каждый символ. Каждый раз, когда я нажимаю клавишу Backspace
Ваш вопрос был трудным для понимания, но я ответил, попробуйте и дайте мне знать, если это то, что вы хотите.





Здесь я предлагаю изменения, чтобы ваше текстовое поле имело следующее поведение.
Если вы не хотите, чтобы текст "добавленное предложение" (как показано на первом изображении) исчезал при вводе backspace в текстовое поле,
вы можете сделать это эти шаги
сделайте следующее изменение в вашем коде
private void loadproductName()
{
DataTable dt = _poshelper.getproductName("Bill_Select_ProductName");
if (dt.Rows.Count != 0)
{
string[] postSource = dt
.AsEnumerable()
.Select<System.Data.DataRow, String>(x => x.Field<String>("UniqueName"))
.ToArray();
var source = new AutoCompleteStringCollection();
source.AddRange(postSource);
txtItemName.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend;
txtItemName.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.CustomSource;
txtItemName.AutoCompleteCustomSource = source;
}
}
Я не уверен, что вы делаете в событии Leave. Но вы можете добавить событие textBoxKeyUp и добавить в это событие код, как показано ниже.
private void txtItemName_KeyUp(object sender, KeyEventArgs e)
{
// track for backspace
if (e.KeyCode == Keys.Back)
{
if (txtItemName.Text != "")
{
string text = txtItemName.Text.Substring(0, txtItemName.Text.Count() - 1);
txtItemName.Text = "";
txtItemName.Focus();
SendKeys.Send(text);
}
}
}
Не могли бы вы подробнее объяснить свое требование? Я не понимаю вас полностью! что вы хотите сделать здесь, "выберите значение в текстовом поле символ за символом"