C# 如何在wpf中调用KeyEventArgs方法
在列表框内,如果双击列表框项目,列表框项目的值将分配给列表框内的动态文本框。(我在列表框内创建了一个dynamictextbox)。然后我需要修改文本框值。然后单击enter键,添加到列表框项目的文本框值随后被删除。单击esc键时,添加到列表框项目的初始值将被删除 我在MouseEventArg方法中遇到了问题,如何调用keyeventArgs方法 C#C# 如何在wpf中调用KeyEventArgs方法,c#,wpf,C#,Wpf,在列表框内,如果双击列表框项目,列表框项目的值将分配给列表框内的动态文本框。(我在列表框内创建了一个dynamictextbox)。然后我需要修改文本框值。然后单击enter键,添加到列表框项目的文本框值随后被删除。单击esc键时,添加到列表框项目的初始值将被删除 我在MouseEventArg方法中遇到了问题,如何调用keyeventArgs方法 C# System.Windows.Controls.TextBox dynamicTextBox=new System.Windows.Contr
System.Windows.Controls.TextBox dynamicTextBox=new System.Windows.Controls.TextBox();
字符串先前值;
私有无效项\u鼠标双击(对象发送器,鼠标按钮ventargs e)
{
//获取索引值
var index=lstbxindex.Items.IndexOf(lstbxindex.SelectedItem);
//设置文本框的高度和宽度属性
dynamicTextBox.Width=230;
dynamicTextBox.Height=50;
//将文本框添加到列表框
this.lstbxindex.Items.Add(dynamicTextBox);
//将selectedITem值指定给文本框
dynamicTextBox.Text=lstbxindex.SelectedItem.ToString();
//编辑前获取文本框值
previousvalue=dynamicTextBox.Text;
//从列表框项中删除值
lstbxindex.Items.RemoveAt(索引);
dynamicTextBox.AcceptsReturn=true;
}
private void checkenterclicked(对象发送者,System.Windows.Forms.KeyEventArgs e)
{
如果(e.KeyCode==Keys.Enter)
{
输入(发送者,e);
//dynamicTextBox.PreviewKeyDown+=enterplicked;
}
}
已单击私有无效项(对象发送者,System.Windows.Forms.KeyEventArgs e)
{
如果(e.KeyCode==Keys.Enter)
{
使用(DatabaseConnector databaseConnection=新的DatabaseConnector(ApplicationConstants.ConnectionString))
使用(ProjectsTable ProjectsTable=newprojectstable(数据库连接))
{
//这里从DbActive状态为零的项目表中筛选名称
AddFilter(新过滤器(ProjectsColumnTypes.DbActive,CompareOperator.Equals,true));
projectsTable.Read();
AddFilter(新过滤器(ProjectsColumnTypes.Name、CompareOperator.Equals、dynamicTextBox.Text));
projectsTable.Read();
foreach(projectsTable.Rows中的DtoProjectsRow行)
{
//Guid DbId=row.DbId;
Guid DbId=row.DbId;
var UpdateRow=projectsTable.NewRow();
UpdateRow.Name=dynamicTextBox.Text;
UpdateRow.DbId=DbId;
UpdateRow.DbActive=true;
//将行更改为表格。
projectsTable.AlterRow(UpdateRow);
//将新行写入数据库。
projectsTable.Post();
//在组合框中添加项目
添加(dynamicTextBox.Text);
}
//dynamicTextBox=e.sourceas System.Windows.Controls.TextBox;
}
}
其他的
{
if(e.KeyCode==Keys.Escape)
{
lstbxindex.Items.Add(以前的值);
lstbxindex.Items.Remove(dynamicTextBox);
}
}
}
你能不能
System.Windows.Forms.KeyEventArgs ee = new System.Windows.Forms.KeyEventArgs();
ee.KeyCode = Keys.Enter;
EnterClicked(sender,ee);
试试这个:
订阅动态文本框keyevent。把它放到构造函数中。例如:
System.Windows.Controls.TextBox dynamicTextBox = new System.Windows.Controls.TextBox();
string previousvalue;
public MainWindows()
{
InitializeComponent();
//subscribe to previewKeyDown, KeyDown will not work for enter key
dynamicTextBox.PreviewKeyDown += dynamicTextBox_KeyDown;
}
// this will hit if any key is pressed
void dynamicTextBox_KeyDown(object sender, KeyEventArgs e)
{
if (e.Key == Key.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;
}
}
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;
}
System.Windows.Controls.TextBox dynamicTextBox=new System.Windows.Controls.TextBox();
字符串先前值;
公共主窗口()
{
初始化组件();
//订阅previewKeyDown,对于enter键,KeyDown将不起作用
dynamicTextBox.PreviewKeyDown+=dynamicTextBox\u键向下;
}
//如果按下任何一个键,该键都会被击中
void dynamicTextBox_KeyDown(对象发送方,KeyEventArgs e)
{
如果(e.Key==Key.Enter)
{
使用(DatabaseConnector databaseConnection=新的DatabaseConnector(ApplicationConstants.ConnectionString))
使用(ProjectsTable ProjectsTable=newprojectstable(数据库连接))
{
//这里从DbActive状态为零的项目表中筛选名称
AddFilter(新过滤器(ProjectsColumnTypes.DbActive,CompareOperator.Equals,true));
projectsTable.Read();
AddFilter(新过滤器(ProjectsColumnTypes.Name、CompareOperator.Equals、dynamicTextBox.Text));
projectsTable.Read();
foreach(projectsTable.Rows中的DtoProjectsRow行)
{
//Guid DbId=row.DbId;
Guid DbId=row.DbId;
var UpdateRow=projectsTable.NewRow();
UpdateRow.Name=dynamicTextBox.Text;
UpdateRow.DbId=DbId;
UpdateRow.DbActive=true;
//将行更改为表格。
projectsTable.AlterRow(UpdateRow);
//将新行写入数据库。
projectsTable.Post();
//在组合框中添加项目
添加(dynamicTextBox.Text);
}
//dynamicTextBox=e.sourceas System.Windows.Controls.TextBox;
}
}
私有无效项\u鼠标双击(对象发送器,鼠标按钮ventargs e)
{
//获取索引值
var index=lstbxindex.Items.IndexOf(lstbxindex.SelectedItem);
//设置文本框的高度和宽度属性
dynamicTextBox.Width=230;
dynamicTextBox.Height=50;
//将文本框添加到列表框
this.lstbxindex.Items.Add(dynamicTextBox);
//将selectedITem值指定给文本框
dynamicTextBox.Text=lstbxindex.SelectedItem.ToString();
//编辑前获取文本框值
前一个值=动态
System.Windows.Controls.TextBox dynamicTextBox = new System.Windows.Controls.TextBox();
string previousvalue;
public MainWindows()
{
InitializeComponent();
//subscribe to previewKeyDown, KeyDown will not work for enter key
dynamicTextBox.PreviewKeyDown += dynamicTextBox_KeyDown;
}
// this will hit if any key is pressed
void dynamicTextBox_KeyDown(object sender, KeyEventArgs e)
{
if (e.Key == Key.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;
}
}
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;
}