Воспроизведение (хех) этой идеи здесь и сейчас, когда я знаю, как на самом деле «отвечать» на вопросы по SO.
Другой возможностью является использование динамического поставщика DNS. Я не думал об этом раньше, потому что он в основном используется, когда вы хотите разместить сервер дома, используя соединение, которое использует DHCP, поэтому я на самом деле не знаю, насколько хорошо он будет работать.
По существу:
Я думаю, что обновление должно быть почти немедленным, но я не уверен, ограничена ли задержка распространения именами хостов или если записи A фактически кэшируются по пути (таким образом, обходя поиск сервера имен).
Пара потенциальных проблем (помимо задержек распространения):
Я думаю, что проблему № 1 можно решить с помощью довольно простой лямбда-функции и триггеров событий, если у поставщика динамического DNS есть API.
Хотя это немного временное решение. Я думаю, что VPN и прокси-решения, безусловно, являются более надежными вариантами.
Ну, вы сейчас проверяете, равен ли размер ячейки нулю. В сетке каждая ячейка в столбце имеет одинаковую ширину, а каждая ячейка в строке имеет одинаковую высоту (как правило, в любом случае).
Вы хотите выполнять проверку на основе значения ячейки. , Например:
if (cell.Value == null || cell.Value.Equals(""))
{
continue;
}
Настройте это для любых других представлений «пустых» значений, которые вас интересуют. Если есть много, вы можете написать для этого определенный метод и вызвать его в проверке:
if (IsEmptyValue(cell.Value))
{
continue;
}
Вам не нужно здесь использовать ключевое слово continue, вы можете просто сделать это:
foreach (DataGridViewRow row in this.dataGridView1.Rows)
{
foreach (DataGridViewCell cell in row.Cells)
{
if (!cell.Size.IsEmpty) MessageBox.Show(cell.Value.ToString()); // note the ! operator
}
}
Кроме того, вы проверяете, является ли размер ячейки опорожнить. Это действительно то, что вы хотите сделать?
Какие ошибки вы получаете?
Разве вы не должны проверять, является ли значение ячейки пустым, а не размером?
if(String.IsNullOrEmpty(cell.Value.ToString()))
continue;
Я хочу читать только данные ячейки [1] ... только
foreach (DataGridViewRow row in this.dataGridView1.Rows)
{
foreach (DataGridViewCell cell in row.Cells[1])
{
if (cell[1].Value == null || cell.Value.Equals(""))
{
continue;
}
MessageBox.Show(cell[1].Value.ToString());
}
}