首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在UserControl按钮单击事件中从父窗口调用公共void方法

,可以通过以下步骤实现:

  1. 确保父窗口和UserControl之间建立了正确的关联。可以通过在UserControl中定义一个事件,然后在父窗口中订阅该事件来实现。例如,在UserControl中定义一个名为"ButtonClick"的事件:
代码语言:txt
复制
public event EventHandler ButtonClick;
  1. 在UserControl的按钮单击事件中触发该事件。当按钮被点击时,调用该事件并传递相应的参数。例如:
代码语言:txt
复制
private void Button_Click(object sender, RoutedEventArgs e)
{
    ButtonClick?.Invoke(this, EventArgs.Empty);
}
  1. 在父窗口中订阅UserControl的事件,并在事件处理程序中调用公共void方法。例如,在父窗口的构造函数或其他适当的位置,订阅UserControl的事件:
代码语言:txt
复制
userControl.ButtonClick += UserControl_ButtonClick;

然后,在事件处理程序中调用公共void方法:

代码语言:txt
复制
private void UserControl_ButtonClick(object sender, EventArgs e)
{
    // 调用公共void方法
    MyPublicVoidMethod();
}

这样,当UserControl中的按钮被点击时,父窗口就会调用公共void方法。

注意:以上示例是基于C#语言和WPF框架的,如果使用其他编程语言或框架,具体实现方式可能会有所不同。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

C# WPF MVVM开发框架Caliburn.Micro常用功能指南②

01 事件连接 这会自动将控件上的事件关联到ViewModel上的方法。 常规约定: 这将导致按钮单击事件调用ViewModel上的“Save”方法。...简短语法: 这将再次导致按钮的“Click”事件调用ViewModel上的“Save”方法。...这在主/详细场景中非常有用,主/详细场景,ActionMessage可能会冒泡到父VM,但需要携带要执行操作的子实例。 $source 触发要发送的ActionMessage的实际框架元素。...$view 绑定到ViewModel的视图(通常是用户控件或窗口)。 $executionContext 操作的执行上下文,其中包含上述所有信息及更多信息。这在高级场景很有用。...Event Aggregator 事件聚合器 事件聚合器上的三种不同方法是: public interface IEventAggregator { void Subscribe(object

79820

1-3 Winform 的常用控件(

Control 类为Form显示的所有控件提供基本功能,Form类表示应用程序内的窗口。...这包括对话框,无模式窗口和多文档界面 (MDI) 客户端窗口及父窗口,同时也可以通过从UserControl类派生而创建自己的控件。...“添加”、“取消”和“关闭”按钮的鼠标单击事件详细代码加下: 小实验:添加功能源代码: private void button1_Click(object sender, EventArgs e)        ...ReadOnly 文本框的文本为只读 Text 检索控件输入的文本 方法 说明 Clear 删除现有的所有文本 Show 相当于将控件的 Visible 属性设置为 True 并显示控件 事件...其基本的属性和方法定义如表1-3所示: 属性 说明 Enabled 确定是否可以启用或禁用该控件 方法 说明 PerFormClick Button 控件的 Click 事件 事件 说明 Click 单击按钮时将触发该事件

2.8K10
  • C#——写一个控件库

    (Button),双击后会进入它的Click事件: private void button1_Click(object sender, EventArgs e) 对于不希望以Click事件作为默认事件的控件来说...UserControl),如果不添加这个属性,在编辑界面双击后进入的事件是Load事件。...指定默认属性后,当用户Form里单击这个控件时,将在属性浏览窗口中自动选定该属性: [DefaultProperty("BtnName")] 2)Browsable:设置控件某一属性或事件是否出现在“...如果某属性或事件没有添加Browsable特性,那么该属性或事件也可以“属性”窗口中看到。...这里还要说明以下,Browsable只能决定某属性或事件“属性”窗口内的可见性,Browsable被置为false的属性和事件,仍可以在编辑器通过代码中使用。

    1.8K41

    WinCC V7.0 支持.NET控件的编程入门

    VS2005新建一个工程CalculateControl,工程类型为 Visual C# 的Windows Control Library, Solution Explorer 窗口中,将UserControl1...Solution Explorer窗口中的工程名(SetupCalculateControl)节点上右键单击弹出的快捷菜单中选择Add\Assembly…项,Browse页,找到刚才编译的CalculateControl.dll...按照如下步骤加载和使用该控件: Object Palette(对象面板)的Controls页的.NET Control上右键单击,选择 [Add/Remove…] 快捷菜单项。...在窗体上加入一个按钮,将其文本改为Add,在按钮的鼠标左键单击(Button\Mouse\Press left)事件中加入VBS脚本,创建.NET控件并调用它的Add方法,源程序如下所示: Dim objCalculateControl...保存并运行该程序,点击[Add]按钮,静态文本中将显示结果18。 注意:本文提供了 WinCC V7.0 支持.NET控件的基本编程方法和测试程序,所有的源程序及测试过程仅供参考。

    2.2K11

    支持.NET控件的编程入门

    VS2005新建一个工程CalculateControl,工程类型为 Visual C# 的Windows Control Library, Solution Explorer 窗口中,将UserControl1...Solution Explorer窗口中的工程名(SetupCalculateControl)节点上右键单击弹出的快捷菜单中选择Add\Assembly…项,Browse页,找到刚才编译的CalculateControl.dll...按照如下步骤加载和使用该控件: Object Palette(对象面板)的Controls页的.NET Control上右键单击,选择 [Add/Remove…] 快捷菜单项。...在窗体上加入一个按钮,将其文本改为Add,在按钮的鼠标左键单击(Button\Mouse\Press left)事件中加入VBS脚本,创建.NET控件并调用它的Add方法,源程序如下所示: Dim objCalculateControl...保存并运行该程序,点击[Add]按钮,静态文本中将显示结果18。 注意:本文提供了 WinCC V7.0 支持.NET控件的基本编程方法和测试程序,所有的源程序及测试过程仅供参考。

    2.9K22

    事件与委托的区别就是“+=”和“-=?

    总结:这样不好,方法写死,点击事件方法写死。我想要点击这个按钮还可以用于其他的功能,,用委托实现!!!...7.改进: 8、userClick这个类,定义委托 MyDel...单击事件这个方法上写上委托字段,接收方法变量。 9、写完毕,点击F6,启动生成!...10、运行,此时,发现,点击”三连击“按钮,没有了任何的反应,因为委托方法是空的;; 11、双击Form1进入窗体加载的事件,,对委托中进行赋值方法调用方法(写你想要的方法) 12、写方法; 13...总结: 1、委托的作用: 占位,不知道将来要执行的方法的具体代码时,可以先用一个委托变量来代替方法调用(委托的返回值,参数列表要确定)。实际调用之前,需要为委托赋值,否则为null。...这个时候只能通过事件来占位(调用),具体调用的是哪个方法,由使用控件的人来决定(Click+=new 委托(方法名);))

    1.2K20

    闲来无事,倒腾了一个简单的silverlight视频播放器

    ,同时单击视频时"暂停"遮罩层也放在这一行,只不过默认不显示而已 第二行为进度条显示区,为了方便布局,在这一行用StackPanel作子容器横向放置了二个控件(进度条和时间显示) 第三行为其它的控制按钮区...,也是用StackPanel横向放置其它控件 实现的功能: 1.单击视频,暂停播放,再次单击则继续播放,原则就是利用鼠标单击事件控制Canvas的显示/隐藏以及调用MediaElement的Play()...--Grid布局:分成三行,第一行放视频窗口,第二行为进度条,第三行为其它控制按钮--> <ColumnDefinition...{ private DispatcherTimer _timerPlay; //实际应用,以下字符串可通过wcf调用获得 private string...System.Windows.Media.MediaElementState.Playing: txtProgress.Text = "正在播放"; //预选缓冲下一段视频(不过实际测试

    1.7K90

    iOS 小技能: Responder Chain(响应者链)【上篇】

    Responder Chain: I 响应者对象 iOS不是任何对象都能处理事件,只有继承了UIResponder的对象才能接收并处理事件,我们称之为“响应者对象”。...UIResponder内部提供了以下方法来处理事件 //一根或者多根手指开始触摸view,系统会自动调用view的下面方法 - (void)touchesBegan:(NSSet...; //触摸结束前,某个系统事件(例如电话呼入)会打断触摸过程,系统会自动调用view的下面方法[可选] - (void)touchesCancelled:(nullable NSSet<UITouch...hitTest方法首先从顶部UIApplication往下调用从父类到子类),直到找到命中者,然后从命中者视图沿着响应者链往上传递寻找真正的响应者。...所谓的响应就是开发事件绑定的一个触发函数,事件发生后执行响应函数里的代码,例如通过addTarget方法按钮单击事件绑定响应函数,在按钮单击后能及时执行想要执行的任务。

    1.1K30

    C#实现多个子窗体切换效果

    多窗体切换的原理:多窗体切换的原理其实是借助一个panel容器,该容器显示相同大小的窗口, 接下来大灰狼和大家分享一下建立多窗口切换的步骤: 1、新建一个主窗体并在其中放置适当的控件,包括进行切换的按钮和显示窗体的...5、主窗体的代码定义相应的三个窗口变量, public UserControl1 f1; //创建用户控件一变量 public UserControl2 f2; //...f3 } 7、由于我们的窗体切换是点击相应的按钮触发的,所以我们要为相应的按钮控件设置触发事件。...双击主窗体按钮进入相应的触发函数,在这里我们要使用如下的代码对相应的子窗体进行显示: //显示窗体一 private void button1_Click(object...,点击相应的按钮panel2容器中就可以呈现出相应的界面。

    4.7K30

    【ArcGIS Pro SDK for Microsoft .NET基础-2】开发实现登录页面

    操作步骤 1、打开上一节创建的demo代码,然后”UI”文件夹上面鼠标右击,依次选择【添加 | 新建项】,在打开的新建项窗口选择新建一个WPF的窗口,并为其取名为”Login”,如下图所示: 2、新建...Login窗口之后,我们的右侧项目代码UI目录下会出现新建的Login窗口代码文件,如下所示: 3、鼠标双击新建的Login窗口代码文件,然后左侧的设计窗口将【工具栏】的Label、Button、...TextBox控件拖动至Login的设计器面板,最终形成如下所示的一个窗体: 4、然后鼠标依次点击此页面的登录和取消两个按钮右下方的属性面板给这两个分别设置名称,如下: 5、设计器面板分别鼠标双击登录和取消按钮...,分别为这两个按钮绑定点击事件,在这里就做一些简单的操作,点击登录按钮时不进行登录校验,只需要打开后续的面板即可,点击取消按钮时就让系统退出,代码如下: using System; using System.Collections.Generic...当然,我们在此处仅仅是介绍了如何新建一个登录页面,并将其注册为系统起始页的方法,里面的逻辑代码并没有详细的编写,大家实际项目中自己编写登录页面的逻辑代码即可。

    96911

    深入浅出话命令

    本例,当CommandBinding捕捉到CanExecute就会调用cb_CanExecute方法。当捕捉到是Executed的时候,就调用cb_Execute事件。...;当输入文字后按钮变为可用,单击按钮,ListBox中会添加不同的条目,效果如下图: ?...实现这个方法时,我们将这个方法唯一的参数作为命令的目标,如果目标是IView接口的派生类则调用其Clear方法---显然我们已经把程序的业务逻辑引入到了命令的Execute方法。...不然你打算在里面放置一个按钮,那么就不要用OnMouseLeftButtonDown的方法来执行命令了,而应该捕获button的Click事件并在事件处理器执行方法(Mouse事件会被Button吃掉...提醒一句:为了讲解清晰才把命令放在这里,正规的方法应该是把命令声明为静态全局的地方供所有对象调用。运行程序,TextBox里输入然后再单击清除控件,效果如下图: ? ?

    1.7K40

    WPF的Data Binding调试指南

    方法1: 修改注册表 + 修改config文件 注册表增加一个选项, 具体做法是,目录HKEY_CURRENT_USER\Software\Microsoft创建文件夹Tracing, 然后在其里面创建子文件夹...2: XAML设置TraceLevel + xaml需要debug的View对应的 .xaml.cs文件启用WPF Trace 该方法适用于 .NET framework 3.5以后(包括 ....Snoop允许你查看您在应用程序中指定的事件列表。当你单击元素时,你可以看到哪些元素受到影响,并查看哪个(方法或任何人)处理了该点击。Hanlded的事件以绿色显示。...) 然后snoop上依次点: Refresh按钮, Snoop按钮(望远镜),借助filter找需要inspect的目标元素,接下来 debug就比较顺畅了。...mole 其他方法: 将Binding改为x:Binding后进行调试 增加一个 ValueConverter,调用它进行调试 End

    1.7K30

    (翻译)LearnVSXNow!-#4 创建一个带有工具窗的Package

    当Visual Studio实验室启动后,你可以“视图|其他窗口”菜单下看到一个新的菜单项: ? 单击这个菜单项,就会打开我们的工具窗。...它的主要功能就是显示一个消息框,这个功能是button1_click事件处理方法里实现的。这个工具窗的按钮支持助记符号“C”,所以我们可以按快捷键Alt+C来代替点击“Click Me"按钮。...下面是Initialize方法的代码,我们只是回顾一下: 1: protected override void Initialize() 2: { 3: Trace.WriteLine...— 创建了一段事件处理方法,并调用package的FindToolWindow方法。通过调用工具窗所在的Frame的Show方法来显示工具窗。...— package的初始化代码里,加入菜单命令和事件处理方法的关联代码。

    79240
    领券