Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 31.10.2012
Сообщений: 3

Как открыть программу в Visual Studio?

29.04.2016, 20:26. Показов 912. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Функция отрисовки транспортной сети
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
public void Draw(bool showInvisible, bool showDeleted) {
//отрисовать граф
 
//перо для отрисовки
Pen dcPen = new Pen(Color.Black, 1); //кисть для отрисовки
Brush dcBrush = new SolidBrush(Color.White);
 
//если необходимо изменить размер компонента перед отрисовкой
if (this.pb.Width != this.width || this.pb.Height != this.height) {
this.pb.Width = this.width; this.pb.Height = this.height;
this.pb.Image = new Bitmap(this.width, this.height); this.dc = Graphics.FromImage(this.pb.Image);
}
 
//отрисовка ведѐтся в высоком качестве
dc.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality; dc.TextRenderingHint = System.Drawing.Text.TextRenderingHint.SingleBitPerPixel;
 
//заливаем всю картинку белым цветом this.dc.FillRectangle(dcBrush, 0, 0, this.width, this.height);
 
//перед тем как отрисовывать вершины, нужно отрисовать рѐбра for (int i = 0; i < aEdge.Count; i++)
{
//отрисовываем только видимые и не помеченные как удалѐнные рѐбра
if ((aEdge[i].Visible == true || (aEdge[i].Visible == false && showInvisible == true)) && (aEdge[i].Deleted == false || (aEdge[i].Deleted == true && showDeleted == true)))
{
int x1 = aVertex[aEdge[i].srcVertex].X; int y1 = aVertex[aEdge[i].srcVertex].Y; int x2 = aVertex[aEdge[i].destVertex].X; int y2 = aVertex[aEdge[i].destVertex].Y; int xm = (x1 + x2) / 2;
int ym = (y1 + y2) / 2;
 
//цвет исходящий от первой вершины dcPen.Width = 4;
dcPen.Color = aGraph[aVertex[aEdge[i].srcVertex].iGraph].Color; dc.DrawLine(dcPen, x1, y1, xm, ym);
dcPen.Color = aGraph[aVertex[aEdge[i].destVertex].iGraph].Color; dc.DrawLine(dcPen, x2, y2, xm, ym);
 
dcPen.Width = 2;
dcPen.Color = aEdge[i].Color; dc.DrawLine(dcPen, x1, y1, x2, y2);
 
((SolidBrush)dcBrush).Color = aEdge[i].Color;
 
string suffix = ""; string prefix = "";
 
if (aEdge[i].Enabled == false) suffix += "Ч"; if (aEdge[i].Visible == false) suffix += "°"; if (aEdge[i].Deleted == true) suffix += "†";
 
if (aEdge[i].IsPartOfPath == true) {
//suffix += " ="; //prefix = "= ";
((SolidBrush)dcBrush).Color = Color.FromArgb(200, 200, 200); }
 
if (aEdge[i].Selected == true) {
dcPen.Width = 2;
 
//рисуем кружочек за который можно таскать ребро
dc.FillEllipse(dcBrush, xm - rSize, ym - rSize, 2 * rSize, 2 * rSize);
 
dcPen.Color = aGraph[aVertex[aEdge[i].srcVertex].iGraph].Color; dcPen.DashStyle = System.Drawing.Drawing2D.DashStyle.Dot; dcPen.DashOffset = 0;
dc.DrawEllipse(dcPen, xm - rSize, ym - rSize, 2 * rSize, 2 * rSize);
 
dcPen.Color = aGraph[aVertex[aEdge[i].destVertex].iGraph].Color; dcPen.DashOffset = 1;
dc.DrawEllipse(dcPen, xm - rSize, ym - rSize, 2 * rSize, 2 * rSize);
 
dcPen.DashStyle = System.Drawing.Drawing2D.DashStyle.Solid;
 
//надпись на ребре int x = xm;
int y = ym;
Size textSize = TextRenderer.MeasureText(prefix + aEdge[i].Weight.ToString() + suffix, textFontBold);
 
x -= textSize.Width / 2; y -= textSize.Height / 2;
Rectangle textRect = new Rectangle(x, y, textSize.Width, textSize.Height);
 
TextRenderer.DrawText(this.dc, prefix + aEdge[i].Weight.ToString() + suffix, textFontBold, textRect, Color.Black);
} else {
dcPen.Width = 1;
 
//рисуем кружочек за который можно таскать ребро dc.FillEllipse(dcBrush, xm - rSize, ym - rSize, 2 * rSize, 2 * rSize);
 
dcPen.Color = aGraph[aVertex[aEdge[i].srcVertex].iGraph].Color; dcPen.DashStyle = System.Drawing.Drawing2D.DashStyle.Dot; dcPen.DashOffset = 0;
dc.DrawEllipse(dcPen, xm - rSize, ym - rSize, 2 * rSize, 2 * rSize);
 
dcPen.Color = aGraph[aVertex[aEdge[i].destVertex].iGraph].Color; dcPen.DashOffset = 1;
dc.DrawEllipse(dcPen, xm - rSize, ym - rSize, 2 * rSize, 2 * rSize);
 
dcPen.DashStyle = System.Drawing.Drawing2D.DashStyle.Solid;
 
//надпись на ребре int x = xm;
int y = ym;
Size textSize = TextRenderer.MeasureText(prefix + aEdge[i].Weight.ToString() + suffix, textFontNormal);
 
x -= textSize.Width / 2; y -= textSize.Height / 2;
Rectangle textRect = new Rectangle(x, y, textSize.Width, textSize.Height);
 
TextRenderer.DrawText(this.dc, prefix + aEdge[i].Weight.ToString() + suffix, textFontNormal, textRect, Color.Black);
} }
}
 
//теперь необходимо отрисовать вершины for (int i = 0; i < aVertex.Count; i++) {
//отрисовываем только видимые и не помеченные как удалѐнные вершины
if ((aVertex[i].Visible == true || (aVertex[i].Visible == false && showInvisible == true))
&& (aVertex[i].Deleted == false || (aVertex[i].Deleted == true && showDeleted == true)))
{
//цвет границы
dcPen.Color = aGraph[aVertex[i].iGraph].Color; //цвет заполнения
((SolidBrush)dcBrush).Color = aVertex[i].Color;
 
string suffix = "";
 
if (aVertex[i].Enabled == false) suffix += "Ч"; if (aVertex[i].Visible == false) suffix += "°"; if (aVertex[i].Deleted == true) suffix += "†";
 
 
if (aVertex[i].IsStart == true) suffix += " »"; if (aVertex[i].IsFinish == true) suffix += " «";
 
if (aVertex[i].IsPartOfPath == true) {
((SolidBrush)dcBrush).Color = Color.FromArgb(200, 200, 200); }
 
if (aVertex[i].Selected == true) {
dcPen.Width = 2;
 
 
 
 
2 * dSize);
 
* dSize);
 
 
 
 
textFontBold);
 
//рисуем квадратик за который можно таскать вершину
dc.FillRectangle(dcBrush, aVertex[i].X - dSize, aVertex[i].Y - dSize, 2 * dSize,
 
dc.DrawRectangle(dcPen, aVertex[i].X - dSize, aVertex[i].Y - dSize, 2 * dSize, 2
 
 
//надпись на вершине int x = aVertex[i].X; int y = aVertex[i].Y;
Size textSize = TextRenderer.MeasureText(aVertex[i].Title + suffix,
 
 
x -= textSize.Width / 2; y -= textSize.Height / 2;
Rectangle textRect = new Rectangle(x, y, textSize.Width, textSize.Height); dc.FillRectangle(dcBrush, textRect);
dc.DrawRectangle(dcPen, textRect);
 
 
TextRenderer.DrawText(this.dc, aVertex[i].Title + suffix, textFontBold, textRect, Color.Black);
} else {
dcPen.Width = 1;
 
 
 
 
2 * dSize);
 
* dSize);
 
//рисуем квадратик за который можно таскать вершину
dc.FillRectangle(dcBrush, aVertex[i].X - dSize, aVertex[i].Y - dSize, 2 * dSize,
 
dc.DrawRectangle(dcPen, aVertex[i].X - dSize, aVertex[i].Y - dSize, 2 * dSize, 2
 
 
//надпись на вершине int x = aVertex[i].X; int y = aVertex[i].Y;
Size textSize = TextRenderer.MeasureText(aVertex[i].Title + suffix, textFontNormal);
 
x -= textSize.Width / 2; y -= textSize.Height / 2;
Rectangle textRect = new Rectangle(x, y, textSize.Width, textSize.Height); dc.FillRectangle(dcBrush, textRect);
dc.DrawRectangle(dcPen, textRect);
 
TextRenderer.DrawText(this.dc, aVertex[i].Title + suffix, textFontNormal, textRect, Color.Black);
} }
}
 
//обновляем картинку т.к. перерисовали this.pb.Refresh();
}
Свойство, реализующее признак видимости графа
C#
1
2
3
4
5
6
7
8
9
10
11
12
new public bool Visible {
get {
return base.Visible; }
set {
base.Visible = value;
 
 
 
//наследовать свойство видимости всем принадлежащим графу вершинам for (int i = 0; i < this.iVertex.Count; i++)
{
tn.aVertex[this.iVertex[i]].Visible = value; }
} }
Свойство, реализующее признак видимости вершины
C#
1
2
3
4
5
6
7
8
9
10
new public bool Visible {
get {
return base.Visible; }
set {
base.Visible = value;
 
//наследовать свойство видимости смежным рѐбрам for (int i = 0; i < this.iEdge.Count; i++)
{
tn.aEdge[this.iEdge[i]].Visible = value; }
} }
Свойство базового класса, реализующее свойство видимости
C#
1
2
3
4
5
6
public bool Visible {
get {
return this.visible; }
set {
this.visible = value; }
}
Продолжение кода в следующей теме
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
29.04.2016, 20:26
Ответы с готовыми решениями:

Скажите если я напишу программу на C# в MS Visual studio 2012 на framework 3.5 я потом смогу открыть проект моей программы на MS Visual studio 2008
Скажите если я напишу программу на C# в MS Visual studio 2012 на framework 3.5 я потом смогу открыть проект моей программы на MS Visual...

Как открыть проект созданный в Visual Studio 2012 в Visual Studio 2008?
Нашел здесь же тему открытия Visual Studio 2012 в Visual Studio 2010 там написано так. Открыть файл проекта (.sln) с помощью блокнота и...

Как проект на visual studio 2012 открыть на visual studio 2008
Программа(курсовая) создана на 2012, надо показать и чтобы работала на 2008. Подскажите пожалуйста как решить данную проблему?

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
29.04.2016, 20:26
Помогаю со студенческими работами здесь

Как открыть файлы в формате visual studio .net 2003 в visual studio net 2002?
Возможно ли открыть файлы в формате visual studio .net 2003 в visual studio .net 2002 ?? Илт только update ?

Visual Studio 2012 Express, мою программу не могут открыть другие
Visual Studio 2012 Express создал обычную простую прогу выдающую одну строку на C++ и нажал Release и Debug пробовал, у меня запускается,...

Открыть проект Visual Studio 2015 в Visual Studio 2010
Здравствуйте не могу открыть проект созданный в Visual Studio 2015 в Visual Studio 2010.

Как в Visual Studio 2010 открыть проект 2012?
Сабж. На работе стоит 2010 VS, дома 2012, изменить нет возможности. Как можно из 2010 версии открыть файлы 2012?

Как открыть свойства проекта в Visual Studio 2017?
в visual studio 2017 во вкладке проект нет свойств проекта, как еще можно открыть свойства проекта?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: 1. Реализовать контроль заполнения реквизита. . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru