我希望进度微调器像按钮一样工作。我在进度微调器上添加了一个click
事件处理程序,但是当我点击微调器的gif图像时,它没有执行click事件。
我使用以下代码:
![见截图] [1]
public ExamMarks()
{
InitializeComponent();
// make the clicks on the picturebox invoke the click event
// on our control
Loading_pb.Click += (o, e) => { this.OnClick(e); };
}
public bool IsStart = false;
[Description("Load Image .gif in the object"), Category("Data")]
public Image LoadGIFImage
{
get { return Loading_pb.Image; }
set { Loading_pb.Image = value; }
}
public void Start()
{
IsStart = true;
this.Visible = true;
var worker = new BackgroundWorker();
worker.DoWork += new DoWorkEventHandler(Loading);
worker.RunWorkerAsync();
}
public void Stop()
{
IsStart = false;
this.Visible = false;
}
void Loading(object sender, DoWorkEventArgs e)
{
while (IsStart)
{
this.Refresh();
}
}
答案 0 :(得分:0)
根据评论中的其他信息,我假设您使用this codeproject article中的CNSpinner.dll
。
问题是控件是UserControl
,PictureBox
完全覆盖它。因此,即使您将Click
事件处理程序分配给控件,接收点击的实际控件也是控件中包含的PictureBox
。
您可以修改CNSpinner
代码,只在Click
上发出PictureBox
事件,调用实际控件上的Click
事件,但不修改{{ 1}}控制,永远不会调用你的事件。当你使用它时,这是对控件实现的限制。
如果你想修改原始的CNSpinner
,一个简单的方法(不是唯一的,也不是最好的方式)就像(在CNSpinner
上):
ProgressSpinner.cs