0

NOTE: This seems to be a fairly common error in MonoDevelop.

I am working on updating a C# Mono application I wrote. I'm having trouble with some dialogs, used by the application.

For example, in the following code:

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();
    }
}

I get these errors:

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)

As well as another one for label1. The thing is that textview1 does exist. So why MonoDevelop is telling me it doesn't I don't know.

I think this.Build is inherited from Gtk.Dialog. Correct?

These were working earlier, but now, even after remaking the dialogs from scratch and just reentering the old code for the functionality it still doesn't work.

My old compiles still work, so while I don't know for sure, that would seem to indicate that GTK# is working fine...

Any help is appreciated. Thanks.

4

4 に答える 4

2

エラーは自動生成されたクラスにあり、何らかの理由で GUI への変更で更新されていませんでした。私のコードで参照されているオブジェクトへの参照が含まれていないことに気付きました。自動生成されたクラスを削除し、ダイアログを再作成して問題を修正しました。

于 2012-07-18T23:59:02.517 に答える
1

同じ問題と思われるものがありました(この質問は古いことを知っています)。エラーは「cs0103」でした。ソリューションを再構築するだけでこれを修正しました。

于 2016-08-29T21:11:53.747 に答える
0

同じエラーが発生しました。Gtk.Window 型クラスの名前を変更したときに発生しました。yourproj/gtk-gui のファイルも名前が変更されますが、ファイル内のクラスの定義は変更されません。内部の名前を変更し、ファイル内に Build の定義があることを確認してください - > Monodevelop は、名前を変更するときに一部のコードを削除することがあります。

于 2014-11-17T15:18:12.727 に答える
0

私も同じ問題を抱えていました。プロジェクト設定の破壊が原因でした。この問題を解決するには、.csproj ファイルを開いて、<ItemGroup> <Compile Include="gtk-gui\yourUIGeneretedFimename.cs" />

yourUIGeneretedFimename.cs は、gui.stetic ファイルが配置されているフォルダーにある必要があります。gui.stetic は ui を記述した xml ファイルです。

于 2016-10-05T10:47:34.393 に答える