函数由于其在 C# 中的保护级别而无法访问

Function is inaccessible due to its protection level in C#

我正在开发一个 Windows 表单应用程序,其中有一个 TextBox 并且我有一个 textBox1_KeyDown 事件触发一个函数,该函数在另一个 class,即在调用其 OBJECT 后调用,所有设置均为默认设置。但是我收到以下错误...

Error CS0122 'ClassName.FunctionName(object, KeyEventArgs)' is inaccessible due to its protection level

现在我的主窗体代码如下所示...

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);
        }       
    }
}

我的 Class 代码如下所示...

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;
            }
        }
    }
}

现在我想通过实用而不是 editing/changing Visual Studio 中的 GUI 设置等来解决这个问题。那么,我能做些什么来解决这个问题吗?

更改以下内容:

private void FunctionName(object sender, KeyEventArgs e)

public void FunctionName(object sender, KeyEventArgs e)

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