将字符串值从一个传递到另一个?
passing a string value from one to the other?
我正在尝试将一个值从一种形式传递到另一种形式,如果我直接分配文本,它会起作用,但当我从下拉框中获取选定的项目时,它不起作用。
表格 2(不起作用)
public string CBPortname()
{
string commName;
commName = CommPortComboBox.GetItemText(CommPortComboBox.SelectedItem);
return commName; **//This seems to have the value if I hover over it. but is blank in the message box**
}
表格 1 代码
Form2 bob = new Form2();
string CBPN = bob.CBPortName();
MessageBox.Show(CBPN.ToString());
如果我更改它以便分配文本,它似乎可以工作。
`
string commName;
commName = "COM1";
return commName;
`
好的,您正在制作一个设置表单。让我们快速了解一下 Microsoft 打算如何完成此类工作。
重命名您的表单 SettingsForm。我用一个名为 SettingsForm 的新窗体创建了一个项目,并且添加了一个组合、一个 numericupdown 和一个文本框。如果你也添加了这些,你可以按照这些步骤进行
在属性网格中查找数值递增。顶部是(应用程序设置),展开它可以看到 属性 绑定。单击 属性 绑定旁边的 3 个点,一个新的 window 打开可能指向值。在值旁边下拉并选择新建(因为您还没有任何设置)
在这里写一些类似ComPort的东西,然后选择一个合理的起始值,比如1。OK
文本框也一样。这是我之前制作的:
- 对于组合,将一些字符串放入其项目中
- 然后在 属性 设置中,绑定文本,并将与其中一项相同的条目放入
- 您要做的差不多就是这些了。当用户更改
Properties.Settings.Default.XXX
的值时,此表单上的控件现在将编辑它们,其中 XXX 是您选择的名称。这是项目菜单上的设置..项目属性..设置选项卡
- 这是一个可爱的主窗体,非常简单 - 两个按钮,一个显示一个消息框,其中包含为波特 select 编辑的内容,另一个打开设置 window 到 select 波特等等
- 并在行动中:
- 它甚至如此神奇,你可以打开很多设置表单,更改一个,它们都会更改(不是你需要这个..)但它会显示如果你从代码中设置一个值,那么 UI 也会改变以反映它(双向绑定)
所以.. 在将控件属性绑定到各种设置后,您所要做的就是将它们读入您的 com 端口,例如:
var comPort = new SomeComportLibraryThing();
comPort.Port = "COM" + Properties.Settings.Default.Comport; //it's just a number from 1 to 9, add a string onto the start
comPort.Baud = int.Parse(Properties.Settings.Default.Baud);
comPort.Send(Properties.Settings.Default.ModemInitString);
或者无论您需要什么 - 这些只是像其他任何变量一样的变量
我正在尝试将一个值从一种形式传递到另一种形式,如果我直接分配文本,它会起作用,但当我从下拉框中获取选定的项目时,它不起作用。
表格 2(不起作用)
public string CBPortname()
{
string commName;
commName = CommPortComboBox.GetItemText(CommPortComboBox.SelectedItem);
return commName; **//This seems to have the value if I hover over it. but is blank in the message box**
}
表格 1 代码
Form2 bob = new Form2();
string CBPN = bob.CBPortName();
MessageBox.Show(CBPN.ToString());
如果我更改它以便分配文本,它似乎可以工作。 `
string commName;
commName = "COM1";
return commName;
`
好的,您正在制作一个设置表单。让我们快速了解一下 Microsoft 打算如何完成此类工作。
重命名您的表单 SettingsForm。我用一个名为 SettingsForm 的新窗体创建了一个项目,并且添加了一个组合、一个 numericupdown 和一个文本框。如果你也添加了这些,你可以按照这些步骤进行
在属性网格中查找数值递增。顶部是(应用程序设置),展开它可以看到 属性 绑定。单击 属性 绑定旁边的 3 个点,一个新的 window 打开可能指向值。在值旁边下拉并选择新建(因为您还没有任何设置)
在这里写一些类似ComPort的东西,然后选择一个合理的起始值,比如1。OK
文本框也一样。这是我之前制作的:
- 对于组合,将一些字符串放入其项目中
- 然后在 属性 设置中,绑定文本,并将与其中一项相同的条目放入
- 您要做的差不多就是这些了。当用户更改
Properties.Settings.Default.XXX
的值时,此表单上的控件现在将编辑它们,其中 XXX 是您选择的名称。这是项目菜单上的设置..项目属性..设置选项卡
- 这是一个可爱的主窗体,非常简单 - 两个按钮,一个显示一个消息框,其中包含为波特 select 编辑的内容,另一个打开设置 window 到 select 波特等等
- 并在行动中:
- 它甚至如此神奇,你可以打开很多设置表单,更改一个,它们都会更改(不是你需要这个..)但它会显示如果你从代码中设置一个值,那么 UI 也会改变以反映它(双向绑定)
所以.. 在将控件属性绑定到各种设置后,您所要做的就是将它们读入您的 com 端口,例如:
var comPort = new SomeComportLibraryThing();
comPort.Port = "COM" + Properties.Settings.Default.Comport; //it's just a number from 1 to 9, add a string onto the start
comPort.Baud = int.Parse(Properties.Settings.Default.Baud);
comPort.Send(Properties.Settings.Default.ModemInitString);
或者无论您需要什么 - 这些只是像其他任何变量一样的变量