Работа с G - Sensor (акселерометром) на HTC C#

Недавно озадачился (в связи с приобретением девайса HTC HD2) а как же в нём, взять с акселерометра данные? И вот результат трудов, маленькая библиотека для доступа к G-Сенсору в HTC (теоретически должна подходить для всех HTC с акселерометром). Разумеется всё это с исходным кодом, используйте на ваше удовольствие в своих разработках.

Подробнее

Заполнение ComboBox из DataSet C#

Собственно в чём суть дела, нет ничего проще заполнения ComboBox-а из DataSet-а.
Делается это вот так:

SqlConnection connRC = new SqlConnection(MainParams.ConStr);
string command = "SELECT     Kod, Nam FROM Produkt ORDER BY Nam";
SqlDataAdapter da = new SqlDataAdapter(command, connRC);

DataSet ds = new DataSet();
connRC.Open();
da.Fill(ds);
connRC.Close();

comboBox1.DataSource = ds.Tables[0];
comboBox1.DisplayMember = "Nam";
comboBox1.ValueMember = "Kod";


Но работает зараза при больших выборках — адски медленно!

Подробнее

DataTable , Фильтры и выбор количества записей.

Эта публикация из цикла о том, как делать не надо. А делать надо так: сначала читать MSDN затем творить, а не наоборот. И в результате проблема: «А чего это он мне 56 записей показывает? Ведь я фильтр наложил и должна быть ровно 1 запись!».

Так вот — если наложили фильтр на DataTable, то вот так вот делать нельзя:

DataTable table = new DataTable();
//Здесь - заполняем нашу таблицу чем нибудь...
table.DefaultView.RowFilter = "[поле_таблицы]=значение"; 
//Если значение символьное - то в одинарных ковычках.
int count = table.Rows.Count; 
//Узнаём сколько строк после фильтра неполучится - выдаст общее количество!
string value = table.Rows[0]["поле_таблицы"].ToString();
//Получаем значение ячейки из первой строки (тоже без фильтра сделает).
Подробнее

Чтение данных из таблиц Excel C#

Многие материалы которые я здесь описываю, я размещаю для самого себя, в основном чтобы мучительно долго не вспоминать как же оно делается и вновь пытать поисковики запросами.
На сей раз опишу простой пример доступа и выборки данных из таблиц Excel в C#. На днях пришлось сим заниматься и в очередной раз вспоминать как оно делается попроще, для больших задач с кучей разных наворотов информации в интернете много. А надо то оно, как обычно бывает, совсем простенько чтоб решало поставленную задачу.

Итак приступим:

Первым делом добавляем в наш проект (Add References...)
Microsoft.Office.Interop.Excel

Подробнее

Drag And Drop и Scroll в TreeView C#

Не так давно пришлось делать DragAndDrop для TreeView и с удивлением обнаружил что на .NET не работает сама собой прокрутка (никак не работает, как выяснилось Microsoft признаёт что есть такая проблема, и предлагают её решать способом описанным ниже).

Итак сам способ.

Вопервых импортируем функцию из user32 — SendMessage
Для этого разумеется не забываем включить в проект (using System.Runtime.InteropServices;)

[DllImport("user32.dll")]
public static extern int SendMessage(
       int hWnd,      // handle to destination window
       uint Msg,       // message
       long wParam,  // first message parameter
       long lParam   // second message parameter
       );
Подробнее

Передача параметров между формами в C#

Часто возникает необходимость передать определённые параметры между формами в одном приложении, например значения каких либо переменных, или запустить какую либо процедуру или функцию в другой форме. Здесь я расскажу о двух методах решения этой задачи. Описанные методы использую сам, поэтому и публикую. Первый метод попроще, второй посложнее но более универсальный и с большими возможностями.

Способ №1
Передача параметров, используя связь между формами. (этот метод назвал я так сам — может есть и научное название).

Подробнее

Делаем программно DataGridViewComboBoxCell C#

В этой публикации я приведу пример программного добавления DataGridViewComboBoxCell.
Как программно заполнить DataGridView рассматривалось здесь.

Операцию по превращению выбранной ячейки DataGridView мы проделываем с существующей ячейкой, поэтому прежде нам необходимо будет создать эту ячейку при помощи предыдущей статьи, в нашем случае будем менять ячейки в колонке с индексом 1 и строке с индексом 1.

Превратить можно не любые ячейки такой метод работает 100% с текстовыми полями. Можно и не превращать а задать сразу. Но я исхожу в данном случае из того что нам не везде нужны ComboBox-ы и следовательно может возникнуть такая необходимость.

Подробнее

Hello World - первое приложение на мобильном компьютере C# .NET CF.

Здесь я приведу пример создания самого простого приложения для КПК на платформе .net cf.
Для начала хотелось бы отметить один момент, что в своей разработке вы конечно можете использовать эмуляторы устройств, но я этого делать очень не рекомендую. Многие задачи которые приходится решать невыполнимы при помощи эмуляторов, поэтому если есть желание разрабатывать что-то более или менее серьёзное, то стоит обзавестись мобильным устройством. Благо самое недорогое можно купить практически за копейки. Для этих целей нет необходимости покупать новый модный и навороченный девайс, достаточно будет покупки с рук старенького видавшего виды налодонника за сущие копейки.

Подробнее

DataGridView пример программного добавления ячеек C#.

Здесь я приведу пример программного добавления ячеек, а соответственно столбцов и строк.

Это может понадобится тогда, когда ну очень надо заполнить DataGridView и при этом совсем не нужен DataSet.

В моём случае, чаще всего это требуется когда необходимо заполнить какие либо параметры, которые могут отличаться для одного и того же объекта, скажем их просто может быть разное количество, вдобавок они могут быть разного типа, и т.п.

Подробнее

Используем Crystal Report в C#

В этой статье я приведу пример создания и использования отчёта Crystal Reports в Visual Studio.

Приведённый пример — это реально рабочий проект по подготовке к печати билетов на обычном лазерном принтере.

Начнём с того что нам потребуется источник данных поэтому вначале создадим проект в котором будем использовать наш отчёт и создадим источник данных который выгрузим в XML файл, для более простого и наглядного создания нового отчёта и его настройки.

Подробнее