Jag använder WinForms i C# under VisualStudio 2017 och har fått ett problem som jag inte kan komma vidare. Jag vill komma åt en textbox-innehåll i en metod men kompilatorn klagar och jag vet inte hur den vill ha det för att fungera.
Här är ett program som demonstrerar mitt problem.
Det finns en knapp som jag kallat buttonTest.
Det finns en textbox som jag kallat textBoxTest.
Jag har plockat bort allt övrigt som inte har med problemet att göra men så att felet uppenbarar sej:
Error CS0120 betyder: "An object reference is required for the non-static field, method, or property 'FormMain.textBoxTest'". Men vad är det för object reference han vill ha?
Jag har försökt med
TestApp.textBoxTest.Text.ToUpper(); Fungerar inte.
FormMain.textBoxTest.Text.ToUpper(); Fungerar inte.
Form.textBoxTest.Text.ToUpper(); Fungerar inte.
Vad ser ni som inte jag ser? Vad kan jag göra som jag ännu inte fattat?
Här är ett program som demonstrerar mitt problem.
Det finns en knapp som jag kallat buttonTest.
Det finns en textbox som jag kallat textBoxTest.
Jag har plockat bort allt övrigt som inte har med problemet att göra men så att felet uppenbarar sej:
Kod:
Nåt verkar fattas.using System; using System.Windows.Forms; namespace TestApp { public partial class FormMain : Form { public FormMain() { InitializeComponent(); } private void buttonTest_Click(object sender, EventArgs e) { TextToUpper(); textBoxTest.Text.ToUpper(); // This works nicely } private static string TextToUpper() { return textBoxTest.Text.ToUpper(); // Gives compilation error CS0120 } } }
Error CS0120 betyder: "An object reference is required for the non-static field, method, or property 'FormMain.textBoxTest'". Men vad är det för object reference han vill ha?
Jag har försökt med
TestApp.textBoxTest.Text.ToUpper(); Fungerar inte.
FormMain.textBoxTest.Text.ToUpper(); Fungerar inte.
Form.textBoxTest.Text.ToUpper(); Fungerar inte.
Vad ser ni som inte jag ser? Vad kan jag göra som jag ännu inte fattat?