нужна очень помощь, пожалуйста. В datagridview находится массив слов, который берется с richtextbox. Нужно чтобы по нажатию на конкретное слово в первом datagridview, в другой datagridview выводились позиции этого слова в тексте (n1, n2, n3, ..., nn), в третью колонку выводилось розница между первыми двумя позициями. Помогите, пожалуйста, очень нужно.
Попробуй вот это надеюсь поможет
private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
{
int index = 0;
dataGridView2.Rows.Add();
dataGridView2.Rows[index].Cells[0].Value = dataGridView1.Rows[e.RowIndex].Cells[0].Value; // передаем значение во 2ой грид
dataGridView2.Rows[index].Cells[1].Value = e.RowIndex; // передаем индекс во второй грид
}
Если вы работаете не с базовыми типами, а собственными классами, то такой функционал очень просто реализовать через привязки. Допустим, у вас есть такие классы
//для отображения позиций слова в тексте
public class WordPosition : IWordPosition
{
public int Start { get; private set; }
public int End => Start + Delta;
public int Delta { get; private set; }
//…
}
//класс слова для отображения в таблицах
public class TFIDFWord : ITFIDFWord
{
private readonly IWord _currentWord;
public int TermFrequency { get; private set; }
public double InverseDocumentFrequency { get; private set; }
public double TFIDF { get; private set; }
public string Value => _currentWord.Value;
public int OrderNumber => _currentWord.OrderNumbers.First();
//!!! вот эта коллекция отображается во второй таблице
public List<IWordPosition> Positions { get; private set; }
//…
}
Тогда в форме нужно создать два поля
//источники данных для таблиц
private BindingSource _bsWords = new BindingSource();
private BindingSource _bsWord = new BindingSource();
А в конструкторе формы сделать соответствующие привязки
public MainForm()
{
InitializeComponent();
//привязки у таблицы слов
_bsWords.DataSource = typeof(ITFIDFWord);
_dataGridViewWords.AutoGenerateColumns = false;
_dataGridViewWords.DataSource = _bsWords;
_columnWordsNumber.DataPropertyName = nameof(ITFIDFWord.OrderNumber);
_columnWordsValue.DataPropertyName = nameof(ITFIDFWord.Value);
_columnWordsTF.DataPropertyName = nameof(ITFIDFWord.TermFrequency);
_columnWordsIDF.DataPropertyName = nameof(ITFIDFWord.InverseDocumentFrequency);
_columnWordsTFIDF.DataPropertyName = nameof(ITFIDFWord.TFIDF);
//привязки у таблицы позиций слова
_bsWord.DataSource = _bsWords;
_bsWord.DataMember = nameof(ITFIDFWord.Positions);
_dataGridViewWord.AutoGenerateColumns = false;
_dataGridViewWord.DataSource = _bsWord;
_columnWordStart.DataPropertyName = nameof(IWordPosition.Start);
_columnWordEnd.DataPropertyName = nameof(IWordPosition.End);
_columnWordDelta.DataPropertyName = nameof(IWordPosition.Delta);
}
Пример целиком здесь.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
ListDLLs выдаёт текст в консоль при правильных аргументах
Есть абстрактный класс "Работник" с абстрактным методом "Подсчитать зараплату", от него наследуются два класса реализующие этот метод, "Наёмный...