1

これまでのところ、ユーザーが何かを入力すると、ラベル プロパティに格納されます。私はこれが正しくないことを知っています。ユーザー入力に基づいて変数を更新し、それを使用する必要があるイベントで使用するにはどうすればよいですか?

これは、私が試した多くのことの 1 つです。私がしなければならないことの解決策をグーグルで検索するための正しい検索用語を理解することさえできません。

namespace Words
{
  public partial class formWords : Form
  {
    int x = 5;
    int y = 50;
    int buttonWidth = 120;
    int buttonHeight = 40;
    string fileList = "";
    string word = "";
    string wordFolderPath = @"C:\words\";// this is the variable I want to change with the dialog box below.

  private void selectWordFolderToolStripMenuItem_Click(object sender, EventArgs e)
    {
        FolderBrowserDialog folder = new FolderBrowserDialog();
        if (folder.ShowDialog() == System.Windows.Forms.DialogResult.OK)
        {
            string folderPath = folder.SelectedPath;
            formWords.wordFolderPath = folderPath;
        }
    }
4

2 に答える 2

2

変わるだけformWords.wordFolderPath = folderPath;

wordFolderPath = folderPath;

またthis.wordFolderPath = folderPath;

あなたの問題を解決する必要があります

また、エラー リストに「非静的フィールド、メソッド、またはプロパティにはオブジェクト参照が必要です...」というコンパイラ エラーがあったはずです。

エラーリストが表示されていない場合は、必ずオンにする必要があります。

于 2013-07-13T02:43:41.063 に答える
2

wordFolderPathクラスに対してパブリックな変数です(ただし、クラス外ではプライベートです)。これは、クラス内のすべてのものが値を自由に読み書きできることを意味します。

構文に関しては、変数名を使用するか、次を使用できますthis.

private void DoAThing()
{
    wordFolderPath = "asdf";
    this.wordFolderPath = "qwerty"; //these are the same
}

内部変数にアクセスするときに、現在のクラスの名前を使用することはできません。formWordsインスタンスではなく型です。

を使用する唯一の利点はthis、メソッド内で同じ名前の変数を定義することが合法であるためです。このキーワードを使用すると、クラスのメンバーについて話していることを確認できます。

于 2013-07-13T02:44:34.597 に答える