由于其在C#

时间:2016-07-05 14:07:40

标签: c# .net keyevent access-modifiers protection

我正在开发一个Windows Form Apps,我有一个TextBox,我有一个textBox1_KeyDown的事件触发一个函数,就是在另一个类中,在调用它的OBJECT后调用它所有设置均为默认值。但是我得到以下错误...

  

错误CS0122' ClassName.FunctionName(object,KeyEventArgs)'是   由于其保护级别无法访问

现在我的主表单代码如下所示......

namespace NewDEMOApps
{
    public partial class MainForm : Form
    {
        ClassName newObj = new ClassName();

        public MainForm()
        {
            InitializeComponent();
        }

        private void textBox1_KeyDown(object sender, KeyEventArgs e)
        {
            newObj.FunctionName(sender, e);
        }       
    }
}

我的班级代码如下所示......

namespace NewDEMOAppsClass
{
    public class ClassName
    {
        private void FunctionName(object sender, KeyEventArgs e)
        {
            if (true)
            {
                if (e.KeyCode.Equals(Keys.Up))
                {
                    MessageBox.Show(UP Key Pressed);
                }
                if (e.KeyCode.Equals(Keys.Down))
                {
                    MessageBox.Show(DOWN Key Pressed);
                }
                if (e.KeyCode.Equals(Keys.Enter))
                {
                    MessageBox.Show(Enter Key Pressed);
                }
                e.Handled = true;
            }
        }
    }
}

现在我想通过实际操作解决这个问题,而不是通过编辑/更改Visual Studio等中的GUI设置来解决这个问题。那么,我可以做些什么来解决这个问题吗?

1 个答案:

答案 0 :(得分:1)

更改以下内容:

private void FunctionName(object sender, KeyEventArgs e)

public void FunctionName(object sender, KeyEventArgs e)

您通常无法从其外部访问private方法。 Read here for further information