C# 切换按钮内容
你好,我需要帮助切换两个按钮的内容 到目前为止,我所做的是检查按钮是否是相邻的C# 切换按钮内容,c#,wpf,xaml,C#,Wpf,Xaml,你好,我需要帮助切换两个按钮的内容 到目前为止,我所做的是检查按钮是否是相邻的 private int row = 4; private int col = 4; public MainWindow() { } private void Button_Click(object sender, RoutedEventArgs e) { Button cmd = (Button)sender; MessageBox.Show(cmd.Tag.ToString()); s
private int row = 4;
private int col = 4;
public MainWindow()
{
}
private void Button_Click(object sender, RoutedEventArgs e)
{
Button cmd = (Button)sender;
MessageBox.Show(cmd.Tag.ToString());
string txt = cmd.Tag.ToString();
int r = int.Parse("" + txt[0]);
int c = int.Parse("" + txt[1]);
if (Math.Abs(r - row) + Math.Abs(c - col) == 1)
{
MessageBox.Show(r + " " + c);
}
我的XAML文件中的按钮是这样的
<Button Tag="00" Grid.Row="0" Grid.Column="0" Click="Button_Click">A</Button>
<Button Tag="01" Grid.Row="0" Grid.Column="1" Click="Button_Click">B</Button>
A
B
挑战在于切换内容(A和B)
有人能帮我吗?只需使用一个临时变量来保存其中一个字符串
string tmp = Button1.Text;
Button1.Text = Button2.Text;
Button2.Text = tmp;
我会跳过通用的eventhandler名称。您需要将要移动到的按钮存储在临时变量中。我使用了九个按钮:
<Button Tag="00" Grid.Row="0" Grid.Column="0" Margin="15,21,13,23" Name="btn1" Click="btn1_Click">A</Button>
<Button Tag="01" Grid.Row="0" Grid.Column="1" Margin="15,21,13,23" Name="btn2" Click="btn1_Click">B</Button>
<Button Tag="02" Grid.Row="0" Grid.Column="2" Margin="15,21,13,23" Name="btn3" Click="btn1_Click">C</Button>
<Button Tag="10" Grid.Row="1" Grid.Column="0" Margin="15,21,13,23" Name="btn4" Click="btn1_Click">D</Button>
<Button Tag="11" Grid.Row="1" Grid.Column="1" Margin="15,21,13,23" Name="btn5" Click="btn1_Click">E</Button>
<Button Tag="12" Grid.Row="1" Grid.Column="2" Margin="15,21,13,23" Name="btn6" Click="btn1_Click">F</Button>
<Button Tag="20" Grid.Row="2" Grid.Column="0" Margin="15,21,13,23" Name="btn7" Click="btn1_Click">G</Button>
<Button Tag="21" Grid.Row="2" Grid.Column="1" Margin="15,21,13,23" Name="btn8" Click="btn1_Click">H</Button>
<Button Tag="22" Grid.Row="2" Grid.Column="2" Margin="15,21,13,23" Name="btn9" Click="btn1_Click">I</Button>
A
B
C
D
E
F
G
H
我
此方法用于从网格中获取按钮并更改值:
private int row = 2;
private int col = 2;
private void btn1_Click(object sender, RoutedEventArgs args)
{
Button cmd = (Button)sender;
string txt = cmd.Tag.ToString();
int r = int.Parse("" + txt[0]);
int c = int.Parse("" + txt[1]);
if (Math.Abs(r - row) + Math.Abs(c - col) == 1)
{
MessageBox.Show(r + " " + c);
Button nearButton = grd1.Children.Cast<Button>().First(e => Grid.GetRow(e) == row && Grid.GetColumn(e) == col);
Object tmp = nearButton.Content;
nearButton.Content = cmd.Content;
cmd.Content = tmp;
}
}
private int row=2;
私有int col=2;
私有无效btn1_单击(对象发送方、路由目标参数)
{
按钮cmd=(按钮)发送器;
string txt=cmd.Tag.ToString();
int r=int.Parse(“+txt[0]);
int c=int.Parse(“+txt[1]);
if(Math.Abs(r-row)+Math.Abs(c-col)==1)
{
MessageBox.Show(r+“”+c);
按钮nearButton=grd1.Children.Cast().First(e=>Grid.GetRow(e)==row&&Grid.GetColumn(e)==col);
对象tmp=nearButton.Content;
nearButton.Content=cmd.Content;
cmd.Content=tmp;
}
}
在我的示例中,指定按钮旁边的两个按钮会随之更改其值,希望这是您的意图
(通过X和Y从网格中获取物品被盗)某个地方,一只WPF小猫死了。请看看卡雷尔的答案。切换按钮型号应该是轻而易举的事。