WinForm子窗体调用ShowDialog时触发ArgumentException异常求助
解决WinForm中My.Settings绑定TextBox触发的ArgumentException异常
异常信息
System.ArgumentException: 'Cannot bind Forward_Port property or column in DataSource. Parameter name: dataMember'
排查与解决步骤
确认My.Settings中存在目标属性
打开项目的Settings.settings文件,检查是否有名为Forward_Port的设置项,确保拼写完全匹配(C#大小写敏感),且属性类型与TextBox的Text属性兼容(如字符串、整数等可自动转换为文本的类型)。修复数据绑定配置
如果是通过设计器绑定:- 打开ConfigForm的设计视图,选中绑定的TextBox
- 在属性窗口找到
DataBindings->Text,点击右侧省略号打开绑定对话框 - 确认
DataSource选择的是My.Settings,DataMember准确填写Forward_Port,无拼写错误或多余字符
如果是代码绑定,确保绑定代码格式正确,示例:
textBoxForwardPort.DataBindings.Add( "Text", Properties.Settings.Default, "Forward_Port", true, DataSourceUpdateMode.OnPropertyChanged );重点检查第三个参数必须与Settings中的属性名完全一致。
清理缓存并重新生成项目
- 右键项目选择「清理」
- 删除项目目录下的
bin和obj文件夹 - 重新生成项目,避免设计器缓存的旧绑定代码导致冲突
检查设置项的访问修饰符
在Settings.settings设计器中,选中Forward_Port项,查看属性窗口的Access Modifier,确保设置为Public。如果是Internal,子窗体可能无法访问该属性导致绑定失败。
内容的提问来源于stack exchange,提问作者E_Blue
相关产品推荐
相关产品推荐

