CS1729与女妖';s SeekSlider、GTK#、Monodevelop
我正在尝试使用Monodevelop gtk#Toolbox item.dll,它是我根据女妖项目的“SeekSlider”小部件的代码构建的。代码编译成功,我可以将其添加到Monodevelop的工具箱中,然后我可以将SeekSlider小部件放到表单上,但当我编译代码时,会抛出CS1729。以下是代码,我对此感到困惑。如能提供任何帮助,将不胜感激: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
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个参数或类似的参数。查看调用构造函数的代码。