我尝试使用WinForms为设备创建一个接口。我有一个存储所有参数和方法的类,如下所示:
// device.h:
class Device {
double parameter_a;
double parameter_b;
double setParameterA(double new_value);
double setParameterB(double new_value);
}
然后,我将创建一个实例并使用它的方法通过事件处理修改参数,并返回UI Control的校正值或者如果一切正常则返回0。
然而,我发现这个解决方案并没有真正缩短我的代码,因为我仍然需要修改我的Form文档中的UI,其中我的所有控件都可以访问(如果遇到错误/超出范围值)。
我想做的是以某种方式将一种指向UI Control(如TextBox)的指针传递给函数,并使其如下所示:
void setParameterA(double new_value, *ui_ctrl_pointer* ) {
// simple value check
if (new_value > 0) {
// numToMStr() - function I have to convert numbers to managed string
*ui_ctrl_pointer*->Text = numToMStr(new_value);
return;
}
}
并修改setParameterA()内的控件以及输入控件和设置我的设备。
1。是否有可能在C ++中做出这样的事情 - cli?(如果是这样, ui_ctrl_pointer 会是什么样子?)
2.这是一种正确的方法还是我应该坚持使用基本解决方案,这会迫使我检查功能输出以确定如何处理用户在我的UI中设置的值?