为了账号安全,请及时绑定邮箱和手机立即绑定

检查是否单击了另一个窗口中的按钮

检查是否单击了另一个窗口中的按钮

C#
PIPIONE 2022-01-09 16:53:24
如果单击按钮,我想打开一个窗口,并且该按钮位于另一个窗口中。那么如何检查另一个窗口中的按钮是否被点击呢?现在我在一个名为“RightButton.cs”的类中编码,当单击“原因”窗口中的“添加”按钮时,我想打开一个名为“PopUp”的窗口。PaidOutReason paid = new PaidOutReason(trnprt, apiParameters); paid.ShowDialog(); if (paid.btnSave.ClickMode == new ClickMode()) {     PopUpBanks popu = new PopUpBanks(this);     popu.Show(); }这个工作完美,但我不得不删除 ShowDialog() 并用 Show() 替换它。然后它不起作用。这是针对 POS 系统的。它有一个名为“键盘”的用户控件。当“原因”窗口打开时,此键盘也希望打开。因此我不得不用 Show() 替换 ShowDialog()。
查看完整描述

3 回答

?
慕森卡

TA贡献1806条经验 获得超8个赞

我会向窗口添加一个事件,并将一个事件处理程序绑定到它。


class WndWindow{

    BtnPaid_Click(object sender, EventArgs e){

        using(var paid = new PaidOutReason()){

            paid.BtnAddClick += Paid_BtnAddClick;

            paid.ShowDialog();

            paid.BtnAddClick -= Paid_BtnAddClick;

        }

    }


    Paid_BtnAddClick(object sender, EventArgs e){

        var popu = new PopUpBanks();

        popu.Show();

    }

}


class PaidOutReason{

    public event EventHandler BtnAddClick;


    BtnAdd_Click(object sender, EventArgs e){

        //Do standard event handler code


        BtnAddClick?.Invoke(this, e);

    }

}

如果您需要执行任何类型的检查,您可以在阅读事件之前执行此操作,如果检查失败则简单地返回。


查看完整回答
反对 回复 2022-01-09
?
弑天下

TA贡献1818条经验 获得超8个赞

处理以下Click事件btnSave:


PaidOutReason paid = new PaidOutReason(trnprt, apiParameters);

paid.btnSave.Click += (ss, ee) => 

{

    PopUpBanks popu = new PopUpBanks(this);

    popu.Show();

};

paid.Show();


查看完整回答
反对 回复 2022-01-09
?
宝慕林4294392

TA贡献2021条经验 获得超8个赞

如果您使用的是 MVVM 模式,那么您可以使用命令绑定来显示 PopupBanks 窗口。例如:


public class ViewModel : INotifyPropertyChanged

    {

        public event PropertyChangedEventHandler PropertyChanged;

        public ICommand AddCommand { get; set; }


        public ViewModel()

        {

            AddCommand = new RelayCommand(AddCommandHandler);


        }


        private void AddCommandHandler()

        {

            IPopUpBanks popu = new PopUpBanks(this);

            popu.Show();

        }

    }

PaidOutReason视图: 1. <Button x:Name="Add" Command={Binding AddCommand}/> 2. 将上述viewmodel 设置为PaidOutReason 视图的datacontext。


创建一个包含 Show() 方法的接口 IPopUpBanks 并在PopUpBanks视图上实现此接口。


查看完整回答
反对 回复 2022-01-09
  • 3 回答
  • 0 关注
  • 291 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号