-1

我有一个问题,我如何才能将长代码放入具有“发送者”和“KeyPressEventArgs”的空域中,然后在许多其他空域中使用该空域。例如:

private void Value_KeyPress(object sender, KeyPressEventArgs e)
    {
        //I want my void shortcut here
        CheckValue(???);
    }

这是我的空白,我想要我的代码从哪里来

private virtual void CheckValue(object sender, KeyPressEventArgs e)
    {
        var comboBox = (ComboBox)sender;
        comboBox.DroppedDown = true;
        var stringToFind = "";
        if (e.KeyChar == (char)8)
        {
            if (comboBox.SelectionStart <= 1)
            {
                comboBox.Text = "";
                return;
            }

            if (comboBox.SelectionLength == 0)
                stringToFind = comboBox.Text.Substring(0, comboBox.Text.Length - 1);
            else
                stringToFind = comboBox.Text.Substring(0, comboBox.SelectionStart - 1);
        }
        else
        {
            if (comboBox.SelectionLength == 0)
                stringToFind = comboBox.Text + e.KeyChar;
            else
                stringToFind = comboBox.Text.Substring(0, comboBox.SelectionStart) + e.KeyChar;
        }
        var indexOfFoundString = -1;
        // Search the string in the ComboBox list.
        indexOfFoundString = comboBox.FindString(stringToFind);
        if (indexOfFoundString != -1)
        {
            comboBox.SelectedText = "";
            comboBox.SelectedIndex = indexOfFoundString;
            comboBox.SelectionStart = findString.Length;
            comboBox.SelectionLength = comboBox.Text.Length;
            e.Handled = true;
        }
        else
            e.Handled = true;

我真的希望,你理解我的问题,可以给我答案:)

4

2 回答 2

0
  CheckValue(sender,  e);

通过这个(可能这就是你的要求。

于 2013-06-11T08:27:07.020 回答
0

我怀疑你的意思是函数而不是void后者是一个指示no value 最简单的方法是将相同的函数分配给事件处理程序例如

control1.KeyPressed += CheckValue
control2.KeyPressed += CheckValue 

或者要忠于您的代码,您可以简单地调用该函数。用作事件处理程序的函数没有什么特别之处,因此可以像任何其他函数一样从任何地方调用它们

private void Value_KeyPress(object sender, KeyPressEventArgs e)
{
    //I want my void shortcut here
    CheckValue(sender,e);
}
于 2013-06-11T08:28:30.817 回答