如何在winform中实现,一个按钮停止另一个按钮的事件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在winform中实现,一个按钮停止另一个按钮的事件相关的知识,希望对你有一定的参考价值。

如图,先点击系统自检按钮,然后如何实现点击“取消”按钮,停止系统自检。

用多线程,在系统自检按钮开启线程,取消按钮停止多线程的执行。 参考技术A 你想实现的功能就是,点“开始检测”按钮 开始工作。点“取消”停止检测对吗?
如果真是这样的话,不需要像你所想的那样复杂,停止另一个按钮的事件。
例如:
private bool IsRunning = false; //先定义一个标识
//开始检测按钮事件
private void btnStart_Click(object sender, EventArgs e)

IsRunning = true;
Thread th = new Thread(Check);
th.Start();


private void Check()

while(IsRunning)

//实现过程……



//取消按钮事件
private void btnCancel_Click(object sender, EventArgs e)

IsRunning = false; //只需要改变标识状态就可以了。这时就会停止工作了


不懂可以继续提问追问

“只需要改变标识状态就可以了。这时就会停止工作了”
没有停止工作,还继续呢。

追答

那就看你的实现过程是怎么个写法了。或是实现过程里已经有了循环或递归、你可以在你的循环或递归里 用if(IsRuning) 来判断 也可以。

本回答被提问者采纳
参考技术B http://blog.csdn.net/qwldcl/archive/2009/03/09/3970784.aspx
希望对你有用!!
参考技术C 不知道你是用什么实现功能的。
可否当点击取消的时候重载窗体来达到取消的目的???

在 UICollectionView 中实现按钮点击

【中文标题】在 UICollectionView 中实现按钮点击【英文标题】:Achieve button click in UICollectionView 【发布时间】:2012-12-20 06:09:18 【问题描述】:

有没有办法从UICollectionViewCell 中的按钮获取按钮单击事件?我用笔尖填充集合视图,单元格有按钮,但它的动作没有被调用。我认为问题在于被调用的代表。我该如何解决这个问题?

我是如何创建的:

    添加了一个空笔尖,创建了一个集合视图单元格 添加了一个 .h 和 .m 文件,并将单元格 nib 的文件所有者作为创建的类 在课堂上写了一个动作。 将按钮连接到操作

有没有办法让我采取行动? 我做错了什么?

【问题讨论】:

你有FileOwner的功能吗?请尝试删除操作链接并重新连接。 关闭请求?为什么?哦好的已编辑 文件所有者是 nib 的类本身? 是的。这也是我可以连接插座的原因吗? 【参考方案1】:

通过从“对象”面板中拖动“集合视图单元格”在 Nib 中创建单元格非常重要。如果您使用 UIView 并只是在 Identity Inspector 中更改此单元格的类,则该操作将不起作用。

【讨论】:

这是我的确切问题。很高兴我找到了这个建议。【参考方案2】:

像这样添加按钮动作:

- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath 

    CollectionViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"CellId" forIndexPath:[indexPath row]]; 

    [[cell myButton] addTarget:self action:@selector(myClickEvent:event:) forControlEvents:UIControlEventTouchUpInside];

    return cell;




- (IBAction)myClickEvent:(id)sender event:(id)event 

    NSSet *touches = [event allTouches];

    UITouch *touch = [touches anyObject];

    CGPoint currentTouchPosition = [touch locationInView:_myCollectionArray];

    NSIndexPath *indexPath = [_myCollectionArray indexPathForItemAtPoint: currentTouchPosition];


【讨论】:

【参考方案3】:

这里是 swift 3.1 代码

// make a cell for each cell index path
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell 

    // get a reference to our storyboard cell
    let cell = collectionView.dequeueReusableCell(withReuseIdentifier: reuseIdentifier, for: indexPath as IndexPath) as! BlueCircleViewCell

    // Use the outlet in our custom class to get a reference to the UILabel in the cell
    cell.bgImage.image = UIImage(named: items[indexPath.row])
    cell.addButton.addTarget(self, action: #selector(addCircle(_:)), for: .touchUpInside)

//        cell.backgroundColor = UIColor.cyan // make cell more visible in our example project

    return cell


func addCircle(_ sender:UIButton)
    //CGPoint buttonPosition = [sender convertPoint:CGPointZero toView:self.tableView];
    let buttonPosition:CGPoint = sender.convert(.zero, to: self.collectionView)
    let indexPath:IndexPath = self.collectionView.indexPathForItem(at: buttonPosition)!
    onAddBlueCircle(indexPath: indexPath)

【讨论】:

以上是关于如何在winform中实现,一个按钮停止另一个按钮的事件的主要内容,如果未能解决你的问题,请参考以下文章

Winform中实现右下角Popuo弹窗提醒效果(附代码下载)

如何在swift 5中实现滑动中的两个垂直按钮以删除

C#WinForm中如何实现长摁一个按钮button实现循环执行一个操作,放开就停止执行

在android的listview中实现音频播放器

如何在 Fragment 中实现一个按钮并让它打开一个新的 Activity?

如何在 TableViewController 中实现后退导航按钮?