Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在wpf中调用KeyEventArgs方法_C#_Wpf - Fatal编程技术网

C# 如何在wpf中调用KeyEventArgs方法

C# 如何在wpf中调用KeyEventArgs方法,c#,wpf,C#,Wpf,在列表框内,如果双击列表框项目,列表框项目的值将分配给列表框内的动态文本框。(我在列表框内创建了一个dynamictextbox)。然后我需要修改文本框值。然后单击enter键,添加到列表框项目的文本框值随后被删除。单击esc键时,添加到列表框项目的初始值将被删除 我在MouseEventArg方法中遇到了问题,如何调用keyeventArgs方法 C# System.Windows.Controls.TextBox dynamicTextBox=new System.Windows.Contr

在列表框内,如果双击列表框项目,列表框项目的值将分配给列表框内的动态文本框。(我在列表框内创建了一个dynamictextbox)。然后我需要修改文本框值。然后单击enter键,添加到列表框项目的文本框值随后被删除。单击esc键时,添加到列表框项目的初始值将被删除

我在MouseEventArg方法中遇到了问题,如何调用keyeventArgs方法

C#

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;

}