CS1729与女妖';s SeekSlider、GTK#、Monodevelop

CS1729与女妖';s SeekSlider、GTK#、Monodevelop,mono,monodevelop,custom-component,gtk#,banshee,Mono,Monodevelop,Custom Component,Gtk#,Banshee,我正在尝试使用Monodevelop gtk#Toolbox item.dll,它是我根据女妖项目的“SeekSlider”小部件的代码构建的。代码编译成功,我可以将其添加到Monodevelop的工具箱中,然后我可以将SeekSlider小部件放到表单上,但当我编译代码时,会抛出CS1729。以下是代码,我对此感到困惑。如能提供任何帮助,将不胜感激: using System; using Gtk; using Mono.Unix; namespace SeekSlider { [S

我正在尝试使用Monodevelop gtk#Toolbox item.dll,它是我根据女妖项目的“SeekSlider”小部件的代码构建的。代码编译成功,我可以将其添加到Monodevelop的工具箱中,然后我可以将SeekSlider小部件放到表单上,但当我编译代码时,会抛出CS1729。以下是代码,我对此感到困惑。如能提供任何帮助,将不胜感激:

using System;
using Gtk;
using Mono.Unix;

namespace SeekSlider
{
    [System.ComponentModel.ToolboxItem(true)]
    public class SeekSlider : HScale
    {
        private uint timeout;
        private uint timeout_delay = 500;
        private bool can_seek;
        private bool raise_seek_requested;
        private bool can_set_value;
        private double pressed_x;

        public event EventHandler SeekRequested;
        public event EventHandler DurationChanged;

        public SeekSlider () : base (0.0, 0.0, 0.0)
        {
            UpdatePolicy = UpdateType.Continuous;
            DrawValue = false;

            raise_seek_requested = true;
            can_set_value = true;

            Adjustment.Lower = 0;
            Adjustment.Upper = 0;

            Accessible.Name = Catalog.GetString ("Seek");

            SetIdle ();
        }

        protected override bool OnButtonPressEvent (Gdk.EventButton evnt)
        {
            can_set_value = false;
            if (evnt.Button == 1) {
                pressed_x = evnt.X;
            }
            return base.OnButtonPressEvent (evnt);
        }

        protected override bool OnKeyPressEvent (Gdk.EventKey evnt)
        {
            switch (evnt.Key) {
                case Gdk.Key.Left:
                case Gdk.Key.Right:
                    return false;
                default:
                    return base.OnKeyPressEvent (evnt);
            }
        }

        protected override bool OnScrollEvent (Gdk.EventScroll evnt) {
            if (can_seek) {
                SeekValue += (evnt.Direction.Equals (Gdk.ScrollDirection.Down) ? -1 : 1) * 10000; // skip 10s
                OnSeekRequested ();
            }

            return base.OnScrollEvent (evnt);
        }

        protected override bool OnButtonReleaseEvent (Gdk.EventButton evnt)
        {
            can_set_value = true;

            if (timeout > 0) {
                GLib.Source.Remove (timeout);
            }

            if (can_seek) {
                if (evnt.Button == 1 && Math.Abs (pressed_x - evnt.X) <= 3.0) {
                    SeekValue = (long) (evnt.X / Allocation.Width * Duration); // seek to clicked position
                }
                OnSeekRequested ();
            }

            return base.OnButtonReleaseEvent (evnt);
        }

        protected override void OnValueChanged ()
        {
            if (timeout == 0 && raise_seek_requested) {
                timeout = GLib.Timeout.Add (timeout_delay, OnSeekRequested);
            }

            base.OnValueChanged ();
        }

        private bool OnSeekRequested ()
        {
            if (raise_seek_requested) {
                EventHandler handler = SeekRequested;
                if (handler != null) {
                    handler (this, new EventArgs ());
                }
            }

            timeout = 0;
            return false;
        }

        public long SeekValue {
            get { return (long)Value; }
            set {
                if (!can_set_value) {
                    return;
                }

                raise_seek_requested = false;

                if (value > Duration) {
                    Duration = Int64.MaxValue;
                    Value = value;
                } else {
                    Value = value;
                }

                raise_seek_requested = true;
            }
        }

        public double Duration {
            get { return Adjustment.Upper; }
            set {
                Adjustment.Upper = value;
                EventHandler handler = DurationChanged;
                if (handler != null) {
                    handler (this, EventArgs.Empty);
                }
            }
        }

        public void SetIdle ()
        {
            Sensitive = false;
            SeekValue = 0;
            Duration = 0;
        }

        public uint SeekRequestDelay {
            get { return timeout_delay; }
            set { timeout_delay = value; }
        }

        public bool CanSeek {
            get { return can_seek; }
            set {
                can_seek = value;
                Sensitive = value;
            }
        }

        public new bool Sensitive {
            get { return base.Sensitive; }
            set {
                if (!value) {
                    can_set_value = true;
                }
                base.Sensitive = value;
            }
        }
    }
}
使用系统;
使用Gtk;
使用Mono.Unix;
名称空间搜索滑块
{
[System.ComponentModel.ToolboxItem(true)]
公共类搜索滑翔机:HScale
{
私有单元超时;
专用单元超时\延迟=500;
私人布尔可以寻求;
要求进行私人募捐;
私有布尔可以设置值;
私人双压_x;
公共事件事件处理程序SeekRequested;
公共事件事件处理程序持续时间已更改;
public SeekSlider():base(0.0,0.0,0.0)
{
UpdatePolicy=UpdateType.Continuous;
DrawValue=false;
raise_seek_requested=真;
can_set_value=true;
调整。下限=0;
调整。上限=0;
Accessible.Name=Catalog.GetString(“Seek”);
SetIdle();
}
受保护的覆盖bool OnButtonPressEvent(Gdk.EventButton evnt)
{
can_set_value=false;
如果(evnt.Button==1){
按下_x=evnt.x;
}
返回base.OnButtonPressEvent(evnt);
}
受保护的覆盖bool OnKeyPressEvent(Gdk.EventKey evnt)
{
开关(evnt.Key){
案例Gdk.Key.Left:
案例Gdk.Key.Right:
返回false;
违约:
返回base.OnKeyPressEvent(evnt);
}
}
受保护的覆盖bool OnScrollEvent(Gdk.EventScroll evnt){
如果(可以搜索){
查看kValue+=(evnt.Direction.Equals(Gdk.ScrollDirection.Down)?-1:1)*10000;//跳过10秒
OnSeekRequested();
}
返回base.OnScrollEvent(evnt);
}
受保护的覆盖bool ON按钮RELEASEEVENT(Gdk.EventButton evnt)
{
can_set_value=true;
如果(超时>0){
GLib.Source.Remove(超时);
}
如果(可以搜索){
if(evnt.Button==1&&Math.Abs(按下\u x-evnt.x)持续时间){
持续时间=Int64.MaxValue;
价值=价值;
}否则{
价值=价值;
}
raise_seek_requested=真;
}
}
公共双倍期限{
获取{return Adjustment.Upper;}
设置{
调整。上限=值;
EventHandler=DurationChanged;
if(处理程序!=null){
处理程序(此,EventArgs.Empty);
}
}
}
公共无效设置空闲()
{
敏感=错误;
SeekValue=0;
持续时间=0;
}
公共uint SeekRequestDelay{
获取{return timeout\u delay;}
设置{timeout\u delay=value;}
}
公共图书馆{
get{return can_seek;}
设置{
can_seek=价值;
敏感=价值;
}
}
公共新图书馆{
获取{return base.Sensitive;}
设置{
如果(!值){
can_set_value=true;
}
基敏感=值;
}
}
}
}

在哪一行?请注意,编译错误不是“抛出的”——它们只是报告的。编译错误和异常(抛出的异常)之间有很大的区别。另外请注意,您当前拥有一个与包含它的命名空间同名的类。这很可能就是问题所在——这至少是一个你应该解决的问题。如果我理解正确,错误不在这段代码中,而是在试图实例化这个类的代码中。这意味着代码需要不同的构造函数签名——可能需要公开3个参数或类似的参数。查看调用构造函数的代码。