Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > .NET для новичков > общие вопросы


Автор: gordmiand 12.1.2008, 23:12
подскажите: 

В билдере есть свои компоненты на каждый случай (все как надо), а на С#?

Вопросы:
 
1. по поводу построения графиков в C#:  я так понимаю, что их надо полностью рисовать самому? - и оси, и подписи по осям? как построить график, например синусоиды - напишите плиз примерчик!
2. по поводу таблиц: 
- как сделать (какие свойства компонента DataGridView) фиксированное число строк и столбцов таблицы на время работы приложения (а то при заполнении таблицы все время добавляется пустая строка),
- как считать данные из таблицы (компонент DataGridView ???) - то есть из i-ой строки и j-го столбца? (напишите пример)!!!
3. как идет работа с математическими операциями (что и как надо подключать): sin, cos.., проверка четности числа (%, mod или как?) - пример пож-та напишите...

Автор: Bogdan1024 13.1.2008, 00:03
Цитата
1. по поводу построения графиков в C#:  я так понимаю, что их надо полностью рисовать самому? - и оси, и подписи по осям? как построить график, например синусоиды - напишите плиз примерчик!

Да, в фреймворке нету рисовальщика графиков, но можно заюзать рисовальщики под COM, которых в интернете полно. С той же делфи можно графикорисовальщик выдрать.

Добавлено через 3 минуты и 27 секунд
Цитата
- как считать данные из таблицы (компонент DataGridView ???) - то есть из i-ой строки и j-го столбца? (напишите пример)!!!

У датагрида есть свойство DataSource, читай из него.

Добавлено через 3 минуты и 55 секунд
Цитата
3. как идет работа с математическими операциями (что и как надо подключать): sin, cos.., проверка четности числа (%, mod или как?) - пример пож-та напишите...

Смотри в System.Math

Добавлено через 6 минут и 8 секунд
Цитата
- как сделать (какие свойства компонента DataGridView) фиксированное число строк и столбцов таблицы на время работы приложения (а то при заполнении таблицы все время добавляется пустая строка),

AllowUserToAddRows?

Автор: gordmiand 13.1.2008, 00:27
1. Как "выдрать" графикорисовальщик из Delphi (например) - можно примерчик....? 
2. синтаксис команды обращения к [i,j]-элементу таблицы серез ее свойство DataSource?
3. Как у  DataGridView на этапе проектирования (или при загрузке приложения) задать число строк в таблице?

Автор: Magnetic 13.1.2008, 00:40
1. Для рисования графиков хороша библиотека http://zedgraph.org/wiki/index.php?title=Main_Page. Достаточно проста в использовании, в источниках есть много примеров как применять.

2. 
Код

this.dataGridView1.Rows[i].Cells[j] = 0;


3. Ответ не знаю, но где-то тут http://windowsclient.net/samples//Go%20To%20Market/DataGridView/DataGridView%20FAQ.doc он должен быть.

Автор: gordmiand 13.1.2008, 15:47
где можно посмотреть пример исп-ия библиотеки ZedGraph - какой сайт???

Автор: Magnetic 13.1.2008, 16:14
В моем предыдущем посте сслыка, на том сайте внизу страницы есть ссылка на дистрибутив ZedGraph, а в нем содержатся примеры.

Автор: gordmiand 13.1.2008, 17:36
C подключением библиотеки ZedGraph к проекту я разобрался, а дальше?

1. где писать самкод построения графика - по примеру написано в public void CreateChart( ZedGraphControl zgc ) или в private void CreateGraph( ZedGraphControl zgc) - а где азять эти события? - их нет у компонента-графика ZedGraph?
3. Куда помещать эти события, елси надо, чтобы график строился по щелчку на кнопке?
2. как идет привязка кода построения графика к имени компонента (имя компоннеента - zgc ?), на котором он должен строится? - вроде судя по примеру имени компонента и нет....
 

Автор: Magnetic 13.1.2008, 20:03
Цитата(gordmiand @  13.1.2008,  17:36 Найти цитируемый пост)
1. где писать самкод построения графика - по примеру написано в public void CreateChart( ZedGraphControl zgc ) или в private void CreateGraph( ZedGraphControl zgc) - а где азять эти события? - их нет у компонента-графика ZedGraph?

Я не знаю о каком примере идет речь. Я разбирался на проекте zedgraph_sample_projects_5.0.7.

Цитата(gordmiand @  13.1.2008,  17:36 Найти цитируемый пост)
3. Куда помещать эти события, елси надо, чтобы график строился по щелчку на кнопке?

Можно бросить кнопку на форму, кликнуть по ней два раза и написать соответствующий код.

Цитата(gordmiand @  13.1.2008,  17:36 Найти цитируемый пост)
2. как идет привязка кода построения графика к имени компонента (имя компоннеента - zgc ?), на котором он должен строится? - вроде судя по примеру имени компонента и нет....

Добавить контрол графика на форму можно двумя способами. Это можно сделать программно, используя экземпляр класса ZedGraphControl, или перетянуть с ToolBox. Чтобы котрол графика можно было перетаскивать на форму с ToolBox, нужно открыть ToolBox, вызвать контекстное меню, в нем выбрать ChooseItem, на первой вкладке выбрать Browse и указать ZedGraph.dll, нажать OK. После этого в ToolBox появится контрол ZedGraphControl, который можно будет перетащить на форму.

Автор: gordmiand 13.1.2008, 22:02

Magnetic: спасибо за информацию по поводу графиков в С# - вроде в общих чертах по примеру разобрался что к чему (но так все сложно с этими графиками!!! и почему нельзя было сделать как в билдере например?)

1. Все-таки хотел узнатькак у DataGridView на этапе проектирования (или при загрузке приложения) задать число строк в таблице - полистал  DataGridView FAQ.doc да вразумительного ответа не нашел - все общие английские слова... подскажи пож-та!!!
2. На Visual C++ такая же стратегия работы с графиками и таблицами, как и в C#?

Автор: Magnetic 13.1.2008, 22:34
Цитата(gordmiand @  13.1.2008,  22:02 Найти цитируемый пост)
1. Все-таки хотел узнатькак у DataGridView на этапе проектирования (или при загрузке приложения) задать число строк в таблице - полистал  DataGridView FAQ.doc да вразумительного ответа не нашел - все общие английские слова... подскажи пож-та!!!

Может не лучший способ, но другого не знаю. На этапе проектирования установить свойства AllowUserToAddRows и AllowUserToDeleteRows равными False и в обработчике события Load формы добавить в датагрид ряды с ячейками, содержащими пустые строки.


Цитата(gordmiand @  13.1.2008,  22:02 Найти цитируемый пост)
2. На Visual C++ такая же стратегия работы с графиками и таблицами, как и в C#? 

Если ты про Visual C++ для .NET, то с ним никогда не работал, но я думаю, что работа с графиком в C++ и в C# будет похожа.

Автор: gordmiand 14.1.2008, 14:16
как программно (пример если можно) добавить нужное число строк и столбцов к DataGridView?

Автор: Magnetic 14.1.2008, 14:58
Если DataGridView содержит две колонки типа DataGridViewTextBoxColumn, то для добавления четырех строк:
Код

this.dataGridView1.Rows.Add("", "");
this.dataGridView1.Rows.Add("", "");
this.dataGridView1.Rows.Add("", "");
this.dataGridView1.Rows.Add("", "");

Автор: gordmiand 14.1.2008, 15:19
как программно добавить столбец (column) в datagridview
как необходимо завершать аварийное закрытие программы (при ошибке)

Автор: farad 14.1.2008, 15:24
Цитата(gordmiand @ 14.1.2008,  15:19)
как необходимо завершать аварийное закрытие программы (при ошибке)


Код

        static void Main()
        {

            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            try
            {

                Application.Run(new Form1());
            }
            finally
            {
                //что-то делаем для корректного завершения
            }
        }

Цитата(gordmiand @  14.1.2008,  15:19 Найти цитируемый пост)
как программно добавить столбец (column) в datagridview
 вообщето грид всего лишь отображает содержимое DataSource. Обычно в этом качестве используется DataTable, в ней и нужно добавлять колонки, строки.. менять значения..

Автор: gordmiand 14.1.2008, 15:56
как программно (пример) добавить в DataTable (это я так понимаю аля массив что ли?) например 2 столбца и 3 строки?

Автор: farad 14.1.2008, 16:19
Код

            DataTable dt = new DataTable();
            DataColumn col1 = new DataColumn("col1", typeof(string));
            col1.DefaultValue = "geg";
            dt.Columns.Add(col1);
            DataColumn col2 = new DataColumn("col2", typeof(int));
            col2.DefaultValue = 0;
            dt.Columns.Add(col2);

            dt.Rows.Add(new object[] { "pupkin", 1 });
            dt.Rows.Add(new object[] { "bulkin", 2 });

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)