Wenn Sie die Listbox-Elemente im Listenfeld doppelt anklicken, werden die Werte der Listenfeldelemente dem dynamischen Textfeld in der Listbox zugewiesen. (Ich habe eine dynamische Textbox in der Listbox erstellt.) um die Textfeldwerte zu ändern. Nach dem Klicken auf die Eingabetaste werden die Textfeldwerte den Listbox-Elementen hinzugefügt und dann dynamytextbox removed.when klicken Sie auf die esc-Taste, um die Anfangswerte zum Listenfeldelement hinzuzufügen.So rufen Sie eine KeyEventArgs-Methode in WPF
Ich habe ein Problem innerhalb der MouseEventArg-Methode, wie die KeyEventArgs-Methode aufgerufen werden kann.
C#
System.Windows.Controls.TextBox dynamicTextBox = new System.Windows.Controls.TextBox();
string previousvalue;
private void items_MouseDoubleClick(object sender, MouseButtonEventArgs e)
{
//Get the index value
var index = lstbxindex.Items.IndexOf(lstbxindex.SelectedItem);
//set the textbox height and width property
dynamicTextBox.Width = 230;
dynamicTextBox.Height = 50;
//Add a textbox to the listbox
this.lstbxindex.Items.Add(dynamicTextBox);
//To assign the selectedITem values to textbox
dynamicTextBox.Text = lstbxindex.SelectedItem.ToString();
//Get the textbox values before editing
previousvalue = dynamicTextBox.Text;
//Remove the values from the listbox item
lstbxindex.Items.RemoveAt(index);
dynamicTextBox.AcceptsReturn = true;
}
private void checkenterclicked(object sender, System.Windows.Forms.KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
EnterClicked(sender, e);
//dynamicTextBox.PreviewKeyDown += EnterClicked;
}
}
private void EnterClicked(object sender, System.Windows.Forms.KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
using (DatabaseConnector databaseConnection = new DatabaseConnector(ApplicationConstants.ConnectionString))
using (ProjectsTable projectsTable = new ProjectsTable(databaseConnection))
{
//Here Filter the Name from project Table which DbActive state is zero
projectsTable.AddFilter(new Filter<ProjectsColumnTypes>(ProjectsColumnTypes.DbActive, CompareOperator.Equals, true));
projectsTable.Read();
projectsTable.AddFilter(new Filter<ProjectsColumnTypes>(ProjectsColumnTypes.Name, CompareOperator.Equals, dynamicTextBox.Text));
projectsTable.Read();
foreach (DtoProjectsRow row in projectsTable.Rows)
{
//Guid DbId = row.DbId;
Guid DbId = row.DbId;
var UpdateRow = projectsTable.NewRow();
UpdateRow.Name = dynamicTextBox.Text;
UpdateRow.DbId = DbId;
UpdateRow.DbActive = true;
// Alter the row to the table.
projectsTable.AlterRow(UpdateRow);
// Write the new row to the database.
projectsTable.Post();
//Add the items in comboBox
lstbxindex.Items.Add(dynamicTextBox.Text);
}
// dynamicTextBox = e.Source as System.Windows.Controls.TextBox;
}
}
else
{
if (e.KeyCode == Keys.Escape)
{
lstbxindex.Items.Add(previousvalue);
lstbxindex.Items.Remove(dynamicTextBox);
}
}
}
Ich möchte einige Werte in das Textfeld bearbeiten. Dies wird getroffen, wenn eine Taste gedrückt wird – user688
@LogeswariJegatheesan ja, aber es wird andere Art von Schlüssel ignorieren, weil es nur für Enter-Taste Filter. Probieren Sie es aus, ohne es zu debuggen, oder debuggen Sie einfach bei: using (DatabaseConnector databaseConnection = new DatabaseConnector (ApplicationConstants.ConnectionString)) –
Vielen Dank ... Es funktioniert. – user688