我在表单上选择了一个控件并点击Delete键。它不会删除。然后我选择了另一个控件,右键单击并选择了属性。显示“属性”窗格,但为空白。然后我得到了:
如果我给了一个名字"?",那肯定不是故意的。我怎样才能解开这个乱糟糟的混乱?
编译器完全混淆,因为它告诉我,"命名空间不能直接包含诸如字段或方法之类的成员。在这行代码中:
else if (cmbxSel.Equals("CHECKBOX"))
......这只是突然发生的39个错误中的一个。"
在Designer.cs文件中,没有什么奇怪的东西,AFAICT。这就是:
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.ckbxUseScrollViewer = new System.Windows.Forms.CheckBox();
this.tabControl1 = new System.Windows.Forms.TabControl();
this.tabPageRow0 = new System.Windows.Forms.TabPage();
this.lblRow0Element5 = new System.Windows.Forms.Label();
this.lblRow0Element4 = new System.Windows.Forms.Label();
this.lblRow0Element3 = new System.Windows.Forms.Label();
this.lblRow0Element2 = new System.Windows.Forms.Label();
this.lblRow0Element1 = new System.Windows.Forms.Label();
this.lblRow0Element0 = new System.Windows.Forms.Label();
this.label5 = new System.Windows.Forms.Label();
this.cmbxRow0Element5 = new System.Windows.Forms.ComboBox();
this.label4 = new System.Windows.Forms.Label();
this.cmbxRow0Element4 = new System.Windows.Forms.ComboBox();
. . .
...并寻找声称的&#34;?&#34;什么都没有。
还有很多其他的&#34;疯狂&#34;相关代码/ .cs文件中的错误消息,例如:
&#34; 预期标识符 &#34;这里:
safeText = replaceIllegalCharsWithUnderscore(btnText);
...&#34; 无效令牌&#39;!=&#39;在类,结构或接口成员声明中 &#34;这里:
if (string.Empty != cmbxSel)
...&#34; 方法必须有返回类型 &#34;这里:
safeText = replaceIllegalCharsWithUnderscore(btnText);
...&#34; 预期类型 &#34;这里:
stringXMLEntry = string.Format("<string name=\"{0}\">{1}</string>\"", btnStringId, btnText);
...和&#34; 类型或命名空间定义,或预期的文件结尾 &#34;在&#34;}&#34;在这里:
sb.Append(Environment.NewLine);
}
else if (cmbxSel.Equals("RADIOGROUP"))
IOW,好像编译器有严重的眩晕/迷失方向。
问题解决了;这完全是因为不知何故:
// and, even before that (if ckbxUseScrollViewer is checked), add the <ScrollView>
private string getXMLForElement(ComboBox cmbxCtrl, Label lblCtrl)
......已成为这个:
// and, even before that (if ckbxUseScrollViewer is checked), add the <ScrollView> private string getXMLForElement(ComboBox cmbxCtrl, Label lblCtrl)
一旦我插入一个crlf(定位光标(之前我曾经是那个光标),然后在#34; private&#34;)和mast按下Enter键之后,一切都很顺利。我从39个错误和504个警告(是的,504)变为0和0。
当在设计师中选择一个控件并使用Delete键时,如何发生这种情况,我可能永远不会理解,但这一定是发生了什么...
我是如何通过查看第一个警告来找到问题的来源(没有双关语意图):
CSharp.CsParser : A syntax error has been discovered in file C:\DroidLayoutBuilder\DroidLayoutBuilder\Form1.cs on line 389.
......这把我带到了那个地方。
奇怪的是,这样的事情会导致许多错误和警告,并且设计师会如此痛苦地抱怨?!
奇怪的是,我再次在设计师中得到了错误的消息,但项目运行良好。也许相关的(???)是我在代码隐藏文件中得到的,&#34;你有混合标签和空格。解决这个问题?&#34;前几次,我选择了&#34; Tabify&#34;我不知道代码是如何被解释的,但我终于厌倦了唠叨,并且选择了不再表现出来的#34; - 但是,放弃唠叨的隐含承诺是一种秃头(或者说是粗体)的谎言。