如何在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弹窗提醒效果(附代码下载)
C#WinForm中如何实现长摁一个按钮button实现循环执行一个操作,放开就停止执行