2012-07-18 69 views
0

注意:这似乎是MonoDevelop中相当常见的错误。MonoDevelop GTK#错误

我正在更新我写的C#Mono应用程序。我遇到了应用程序使用的一些对话框的问题。

例如,在下面的代码:

public partial class Generic : Gtk.Dialog 
{ 
    public Generic (string text, string title = "Error Notice", string label = "<b>Error Details</b>", int height = 150) 
    { 
     this.Build(); 
     textview1.Buffer.Text = text; 
     this.Title = "Application - " + title; 
     label1.LabelProp = label; 
     this.DefaultHeight = height; 
     this.Resize(375, this.DefaultHeight); 
    } 


    protected void OnButtonOkClicked (object sender, System.EventArgs e) 
    { 
     this.Destroy(); 
    } 
} 

我得到这些错误:

Error CS1061: Type `Namespace.Generic' does not contain a definition for `Build' and no extension method `Build' of type `Namespace.Generic' could be found (are you missing a using directive or an assembly reference?) (CS1061) (Namespace) 
Error CS0103: The name `textview1' does not exist in the current context (CS0103) (Namespace) 

除了另一个用于LABEL1。问题是textview1 确实存在。那么为什么MonoDevelop告诉我它不是我不知道的。

我认为this.Build是继承自Gtk.Dialog。正确?

这些工作较早,但现在,即使从头开始重新创建对话框并重新输入旧代码以实现功能,它仍然无法工作。

我的老编译仍然可以工作,所以虽然我不知道肯定做,这似乎表明,GTK#是工作的罚款...

任何帮助表示赞赏。谢谢。

+0

由于这些是部分类,你不错过'其他'文件,可能是自动生成的? – skolima 2012-07-18 09:18:39

+0

它们是gtk-gui中自动生成的文件。我想我可以通过它们来查看,但是我发现搞乱自动生成的文件往往是一个坏主意。 – Razick 2012-07-18 13:02:24

回答

2

这些错误出现在自动生成的类中,出于某种原因,它们未被更改为GUI更改。我注意到他们没有包含任何对我的代码中引用的对象的引用。我删除了自动生成的类,并重新创建对话框来解决问题。

0

我得到了同样的错误,它发生在我重命名Gtk.Window类型的类。你的proj/gtk-gui中的文件也会被重命名,但是文件中类的定义不会。只需在里面重命名,并确保在文件内部有Build的定义 - > Monodevelop有时会在您重命名时删除一些代码。

1

我有什么似乎是相同的问题(我知道这个问题是旧的)。我遇到的错误是:“cs0103”。我简单地通过重建解决了这个问题。

0

我有同样的问题。这是因为破坏了项目设置。 要解决此问题,请尝试打开.csproj文件并将其添加到<ItemGroup> <Compile Include="gtk-gui\yourUIGeneretedFimename.cs" />

yourUIGeneretedFimename.cs应位于放置您的gui.stetic文件的文件夹中。 gui.stetic是一个用xml描述ui的文件。