var myArrayOfObjects = [
{ value: 'test1'},
{ value: 'test2'}
],
myArray = [ 'test1', 'test5' ],
something = [];
for (var obj of myArrayOfObjects) myArray.includes(obj.value) && something.push(obj);
console.log(something);
当我选择行时,第一部分会更新我的文本框。第二部分是对事件处理程序的尝试。我想通过键盘导航网格来更新文本框。因此,任何以蓝色突出显示的行都会自动填充文本框。
我尝试通过将其包含在dataGridViewCargo_CellContentClick中来调用事件处理程序,但是发送者和e不通过,我得到参数计数不匹配错误或者委托给实例方法不能为空'this'。我们的想法是通过按下按钮来调用CellContentClick事件。
任何帮助都会非常友好。
答案 0 :(得分:2)
当您使用鼠标或箭头键在数据绑定的DataGridView
行之间移动时,其数据源的位置会发生变化,并且绑定到同一数据源的所有控件都将显示新位置的值
此外,如果您不使用数据绑定,则会引发SelectionChanged
DataGridView
事件,并可用于更新控件。
因此,您可以使用以下任一选项来解决问题:
将这些TextBox
控件绑定到DataGridView
使用的同一数据源。
使用SelectionChanged
的{{1}}事件。
如果您将DataGridView
绑定到DataGridView
,那么您也可以简单地为DataSource
控件使用数据绑定。只需单击每一行,即可将这些TextBox
控件绑定到要显示的数据源字段。您可以使用设计器或使用代码执行数据绑定:
TextBox
如果您不使用数据绑定,则可以使用var data = GetDataFromSomeShere();
dataGridViewCargo.DataSource = data;
cargoDisplayMessageIdTextBox.DataBindings.Add("Text", data, "ID");
cargoDisplaySubjectTextBox.DataBindings.Add("Text", data, "Subject");
的{{1}}事件并使用SelectionChanged
的{{1}}属性来查找这些字段和更新您的DataGridView
控件:
CurrentRow
首选使用数据绑定(第一个选项)。