C#(wpf)中动态button单击事件取的动态生成的textbox中的内容

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#(wpf)中动态button单击事件取的动态生成的textbox中的内容相关的知识,希望对你有一定的参考价值。

我在窗口中动态定义了一个2*2的表格,然后分别动态放入了一个textblock,一个textbox,以及2个button,在对button做单击事件的时候,如何取得之前动态生成的textbox中的内容呢?

参考技术A 遍历表格中的内容,然后判断类型是否为textbox,如果是则取它的内容属性值。

wpf如何动态改变button的事件.

请看下面的代码第5行的button(aaaa)我想在类中取得它然后改变他的按钮文字和click事件,但是却取不到它,第9行的元素能根据name取到,刚研究wpf请高手指点如何做,谢谢。

<Grid VerticalAlignment="Stretch" HorizontalAlignment="Stretch">
<Grid.Resources>
<DataTemplate x:Key="buttonTemplate">
<StackPanel Orientation="Horizontal">
<Button Name="aaaa" Content="删除" Width="70" Click="Button_Click"/>
</StackPanel>
</DataTemplate>
</Grid.Resources>
<DataGrid AutoGenerateColumns="False" CanUserAddRows="False" HorizontalAlignment="Stretch" Name="dgData" CellEditEnding="dgData_CellEditEnding" VerticalAlignment="Stretch" >
......
</Grid>

因为button屏蔽了mousedown事件。你可以画一个border。把button放入border。
让button自动适应border的大小。
在border的mousemove事件,总改变鼠标形状。
在border的mousedown事件中保存当前点。
在border的mouseup事件中获取鼠标位置,
通过down和up的位置差,计算你的按钮大小,改变border的大小和位置即可。
参考技术A this.aaaa.Click-=Button_Click;
this.aaaa.Click+=Button_Click1;追问

嗯,谢谢。这个问题用别的方式解决了。现在又出现了一个新问题,
onload事件为什么只执行一次,也就是第一次打开的时候执行了一次,close之后再打开就不执行了。
为了解决这个问题又调用了activated事件,可是这样也有个坏处就是,第一次打开时,即执行了onload也执行了activated,想问一下怎样解决。谢谢。
原来调用close方法并不会清空窗口对象,手动清空一下就行了。

本回答被提问者采纳

以上是关于C#(wpf)中动态button单击事件取的动态生成的textbox中的内容的主要内容,如果未能解决你的问题,请参考以下文章

WPF C#为动态创建的按钮创建Click事件

wpf如何动态改变button的事件.

在WPF中,如何遍历动态生成的多个button按钮

C# Winform自定义控件加载到主窗体中之后,自定控件上面的空间 怎么和主窗体上其他控件交互?

动态创建到 WPF 表单的用户控件上的按钮单击事件

wpf里如何动态改变一个按钮模板里边的静态资源