我确信这只是一些简单的事情,但我刚刚进入C#,这并不是我的想法。
我基本上需要为我的按钮分配更改我的工具用来将数据写入3DS的变量offsets
的功能。
我有两个变量,但我真的不知道如何告诉它在我按下它时使用1
设置切换到另一个,如果我再次按下它则会退回瀑布。
这是我的代码,显示了我的整个工具中调用的变量
public partial class MainForm : Form
{
public delegate void LogDelegate(string l);
public LogDelegate delLastLog;
public string lastlog = "";
public int pid = 0;
public PKHeX dumpedPKHeX = new PKHeX();
//Possibly Ultra box layout Offset? 0x33015AB0
//Possibly Ultra Wondercard Offset? 0x33075BF4
public uint boxOff = 0x330D9838;
public uint wcOff = 0x331397E4;
public uint partyOff = 0x34195E10;
然后这是我开始的按钮。
private void btn_ConvertMode_Click(object sender, EventArgs e)
{
MessageBox.Show("Ultra Support Mode Activated!", "WonderInjection", MessageBoxButtons.OK);
return;
}
任何想法的人?基本上boxoff
和wcoff
偏移我需要能够切换到我已经注释掉按钮命令的那些。
答案 0 :(得分:0)
我只是创建一个bool类型的变量来保持切换状态。在每个按钮单击事件上,切换此变量的状态:
<?php
$gridColumns = [
['class' => 'yii\grid\SerialColumn'],
'username',
'email',
[
'label' => Yii::t('app','User Access'),
'value' => function($model){
if($model->access_level == 1) { return 'Read/Write/Import/Export'; }
if($model->access_level == 2) { return 'Read/Write'; }
if($model->access_level == 3) { return 'Read'; }
}
],
'fullname',
// [
// 'label' => Yii::t('app','Status'),
// 'value' => function($model){
// if($model->status == 10) { return 'Active'; }
// if($model->status == 0) { return 'Inactive'; }
// }
// ],
[
'attribute' => 'created_at',
'format' => ['date' , 'php:d/m/Y'],
'label' => Yii::t('app','Created On'),
'headerOptions' => ['style' => 'width:12%;'],
],
[
'attribute' => 'updated_at',
'format' => ['date' , 'php:d/m/Y'],
'label' => Yii::t('app','Modified On'),
'headerOptions' => ['style' => 'width:12%;'],
],
// 'updated_by',
[
'attribute' => 'updated_by',
'label' => Yii::t('app','Modified By'),
'headerOptions' => ['style' => 'width:12%;'],
'value' => 'user.username',
// 'value' => function($model){
// return $model->user->username;
// }
],
// ['class' => 'yii\grid\ActionColumn'],
];
echo ExportMenu::widget([
'dataProvider' => $dataProvider,
'columns' => $gridColumns,
'target' => ExportMenu::TARGET_BLANK,
'showConfirmAlert' => false,
'filename' => 'Users',
'dropdownOptions' => [
'label' => 'Export',
'class' => 'btn btn-info',
'export' => true,
'toolbar'=>[
'{export}',
'{toggleData}'
]
],
'exportConfig'=>[
ExportMenu::FORMAT_HTML=>false,
ExportMenu::FORMAT_TEXT=>false,
ExportMenu::FORMAT_PDF=>false,
ExportMenu::FORMAT_EXCEL=>false,
],
]);?>
然后使用此toggleVar的值来决定使用哪个偏移量。
答案 1 :(得分:0)
public bool isDefaultOffset(uint boxOff,uint wcOff)
{
if((boxOff==0x330D9838))&&(wcOff==0x331397E4))
return true;
else
return false;
}
public void ChangeOffSet(uint boxOff,uint wcOff)
{
if(isDefaultOffset(boxOff,wcOff))
{
boxOff= 0x33015AB0;
boxOff= 0x33075BF4;
}
else
{
// set default values here
}
}
然后在事件上调用changeOffset()方法。
答案 2 :(得分:0)
如果队列中只有两个值,那么您可以创建两个存储可能数据的队列,然后将它们出列并排队,这与排序按钮完全相同。
我会在类似
的类中声明队列Queue<string> qbox;
Queue<string> qwc;
然后我会在构造函数或其他方法中启动这样的队列。
qbox = new Queue<string>
{
"0x330D9838", "0x33015AB0"
};
qwc = new Queue<string>
{
"0x331397E4", "0x33075BF4"
};
然后我会像这样使用它们:
private void btn_ConvertMode_Click(object sender, EventArgs e)
{
qbox.Enqueue(box);
box = qbox.Dequeue();
qwc.Enqueue(wc); //puts wc value to the back of the queue
wc= qbox.Dequeue(); //removes first value from a queue and puts it in wc variable
}
qbox会将box值添加到队列的末尾,而box会从队列的开头获取值。从队列中删除出队的对象。 wc相同。我认为这种方法非常易读和可管理,因为你不必处理多个if ... thens。您只需在值之间切换。
你必须记住,框和wc变量也需要用一些初始值初始化。