好的,我们走了。我对编程和C#有点新,但我正在学习John Sharp的 Visual C#:Step By Step 一书。 (我想知道这个家伙的名字是否真的是夏普)
无论如何,我正在尝试创建一个可以帮助我转置音符的应用程序。这是一个Windows窗体应用程序,我使用两个类: form1.cs 所有代码发生的地方和 vars.cs ,其中存储了所有变量。
我的问题是我想使用字符串 vars.noteChosen 并使用 comboBoxNote 的当前所选项目(例如C)进行定义。但是,每当我执行此操作时,当我执行vars.noteChosen = comboNote.SelectedText;
时,我得到一个“对象引用未设置为对象的实例”。错误。有任何想法吗? (comboNote是一个组合框)
这是 vars.cs
namespace Transposer
{
class vars
{
public static bool rbTransposeUp = true;
public static string noteChosen = ""; //
public static string toTranspose = ""; //
public static int note = 0;
public static string boxResultText = note.ToString();
}
}
这是 form1.cs
的一部分namespace Transposer
{
public partial class Transposer : Form
{
public Transposer()
{
vars.noteChosen = comboNote.SelectedText;
vars.toTranspose = comboNote.Text;
InitializeComponent();
}
...
我做错了什么?
答案 0 :(得分:6)
在调用InitializeComponent();
之后移动线条正是这个创建comboNote对象的调用。
那是
public Transposer()
{
InitializeComponent(); // this constructs the comboNote
vars.noteChosen = comboNote.SelectedText;
vars.toTranspose = comboNote.Text;
}