Ответы пользователя Fish - CodeHelper

Fish

Fish
Карма 1125
Имя Неизвестно
Возраст Неизвестно
Сайт Неизвестно
Twitter Неизвестно
Участвует в проекте 1003 дн., 13 час., 49 мин.
Последняя активность 680 дн., 6 час., 33 мин. назад
О себе ничего не указано

Ответы

Новые Лучшие

Перейти к вопросу →

Приведённый код только добавляет колонку в таблицу (кстати, тоже самое можно сделать вообще без кода, на редакторе форм). Никакие действия при этом не настраиваются. Чтобы осуществить некоторое действие при клике на ссылку нужно подписаться на событие CellContentClick объекта DataGridView. Обработчик может быть примерно таким:

private void DataGridView_CellContentClick(
    object sender,
    DataGridViewCellEventArgs e)
{
    // Индекс колонки
    var colIndex = e.ColumnIndex;

    // Индекс строки
    var rowIndex = e.RowIndex;

    // Проверяем, что клик произошел именно на столбце со ссылками
    // 3 — это хардкод индекса колонки
    if (colIndex == 3)
    {
        // Зная номер колонки (rowIndex) производим
        // удаление или любое другое действие с набором данных.
    }
}

Для отслеживания клика на заголовок таблицы должно подойти событие CellClick:

private void DataGridView_CellClick(
    object sender,
    DataGridViewCellEventArgs e)
{
    // Индекс колонки
    var colIndex = e.ColumnIndex;

    // Индекс строки
    var rowIndex = e.RowIndex;

    // Опять проверяем, что клик произошел именно на 
    // столбце со ссылками. Также проверяем, что номер
    // строки равен -1. Это означает, что клик произошел
    // в заголовке, а не в обычной строке.
    if (colIndex == 3 && rowIndex == -1)
    {
        // осуществляем Delete All или любое другое действие.
    }
}
Перейти к вопросу →

Ну вообще это вполне логично — метод Save вызывается у объекта feed, соответственно в файл сохраняется содержание этого фида. Если нужно сохранить что-то другое (например, адрес), то к объекту feed вообще не нужно обращаться:

RssFeed feed = RssFeed.Load(textBox1.Text);
AppendAddressToFile(textBox1.Text, "C://test1.txt");

Метод AppendAddressToFile (код не приводится) открывает файл по указанному пути, записывает туда строку и закрывает этот файл.

Перейти к вопросу →

Если в проекте есть ссылка на System.Web, то можно использовать такой статический метод:

System.Web.VirtualPathUtility.IsAbsolute(string virtualPath);

(Предложено пользователем kolbasik) В противном случае, можно использовать этот вариант.

Перейти к вопросу →

Если оба проекта находятся в одном решении, то лучшим способом их связать будет создание прямой ссылки. То есть Консольный Проект → Добавить ссылку → Проект DLL. Об этом прямо написано написано в MSDN:

Не следует добавлять ссылки на выходные файлы другого проекта того же решения, поскольку это может привести к ошибкам компиляции. Вместо этого следует создавать ссылки между проектами, используя вкладку Проекты диалогового окна Добавление ссылки. Это позволит упростить коллективную разработку за счет более эффективного управления библиотеками классов, создаваемыми в проектах.

Но при этом, конечно, все зависимости и запускаемый файл будут находиться в одной папке (bin/Debug или bin/Release). Если обязательно нужно переместить часть зависимостей в подпапку, то в App.config консольного проекта можно добавить такой код:

<runtime>
  <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
    <probing privatePath="Lib" />
  </assemblyBinding>
</runtime>

Это заставит среду выполнения искать зависимости по указанному пути. Переносить dll-ки в эту папку можно уже после компиляции. Например, используя пост-билд-экшн MSBuild.

Перейти к вопросу →

Нужно для родительского контейнера задать height или width и тогда контейнер будет вести себя также как в других браузерах. Можно задать фиксированное (px) или относительное (em и тп) значение:

#container
{
    overflow: hidden;
    height: 100%;
}
Перейти к вопросу →

В исходниках ASP.NET MVC нашел, что в качестве объекта writer можно передавать StringWriter из текущего контекста:

TextWriter writer = context.HttpContext.Response.Output;
ViewContext viewContext = new ViewContext(context, View, ViewData, TempData, writer);
Перейти к вопросу →

Нужно использовать свойство CodeBase класса Assembly:

var assembly = Assembly.GetAssembly(GetType());     1
var assemblyFileUri = new Uri(assembly.CodeBase);   2
var path = assemblyFileUri.LocalPath;               3

1 — получаем объект Assembly для текущего класса.

2 — свойство CodeBase возвращает строку URI вида file://C:/FooDirectory/Foo.dll. Эта строка передается в конструктор класса URI, который сконвертирует ее в обычный путь файловой системы.

3 — свойство LocalPath возвращает путь к файлу сборки.

Перейти к вопросу →

Должно помочь вот это (автоматический скрол в конец документа):

HtmlDocument document = webBrowserControl.Document;
document.Body.ScrollTop = int.MaxValue;
Перейти к вопросу →

Есть библиотеки математических расчетов под .NET, но все они довольно-таки монструозные. Сложно сказать, насколько они помогут в этой конкретной задаче, но все они имеют поддержку векторного исчисления.

Платные (есть trial):

Бесплатная

Перейти к вопросу →

поддерживаю, хорошая идея.



v1.7.123.556
© 2009—2010 CodeHelper FAQ | О сайте | Обратная связь | История изменений | Статьи
Creative Commons LicenseМатериалы сайта распространяются под лицензией Creative Commons Attribution-Share Alike 3.0 Unported.