Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Программирование (VB,C#,ASP,.NET): новости, советы, примеры


Выпуск # 738

Очередной выпуск рассылки! За последнее время на сайте произошло столько всего, столько всего, что все просто не уместилось в этот выпуск! Но ничего, ведь вы всегда можете ознакомиться со всеми обновлениями непосредственно посетив сайт. Кстати, помимо изменения в содержании Kbyte.Ru, появлении новых интересных материалов, проект постоянно совершенствуется технически, и вы можете принять в этом непосредственное участие, присылая свои идеи и предложения.
Надеюсь, этот выпуск будет интересен для вас. Если вы хотите увидеть в следующих выпусках что-то конкретное, напишите мне об этом на ящик subscribe@kbyte.ru.


Содержание выпуска

Читайте в этом выпуске:

Если у вас есть вопросы по программированию или работе с компьютером, не стесняйтесь, спрашивайте.

Форумы Kbyte.Ru

На форумах Kbyte.Ru постоянно появляются новые интересные темы и обсуждения. В этом выпуске представлены лишь новые темы, с момента прошлой рассылки.

Кстати, любой желающий может на форумах Kbyte.Ru совершенно свободно получить помощь грамотных специалистов в области программирования, да и в целом информационных технологий.

Задать свой вопрос прямо сейчас

Привет, Форумчане
Улучшил. Все в Help-e.
С уважением, Akiva

[- к содержанию -]

Как добавить текст на picturebox? желательно по центру снизу ну и так же цвет шрифт(если возможно)

[- к содержанию -]

Ответ #1 @Алексей Немиро 30.07.2013 17:45
Dim g As Graphics = PictureBox1.CreateGraphics()
g.DrawString(параметры, не помню какие, но точно должен быть сам текст, шрифт, цвет и позиция по x, y)

[- к содержанию -]

Ответ #2 @Алексей Немиро 31.07.2013 11:19
Для выравнивая по центру нужно будет знать размер строки, узнать можно так.


X = (Большой квадрата - Малый квадрат) / 2
X = (PictureBox1.Width - textSize.Width) / 2

[- к содержанию -]

Добавить свой ответ в эту тему
Как задать размер между итемами которые находятся внутри??

[- к содержанию -]

Ответ #1 @Алексей Немиро 30.07.2013 15:29
За это отвечает свойство Margin элементов (которые расположены в панели).

[- к содержанию -]

Добавить свой ответ в эту тему
Как создать форму программно? и несколько в цикле?

[- к содержанию -]

Ответ #1 @Алексей Немиро 29.07.2013 18:11
Как любой другой элемент управления.
    For i As Integer = 0 To 10
      Dim f As New System.Windows.Forms.Form()
      f.Show()
    Next
Аналогичным образом можно создать форму из существующих в проекте форм:
    For i As Integer = 0 To 10
      Dim f As New Form1()
      f.Show()
    Next
Последнее делать проще всего, т.к. можно заранее установить визуально нужные параметры формы, ну и в форме может быть много дополнительного функционала.

[- к содержанию -]

Ответ #2 @Crash666 29.07.2013 18:26
А как "собрать" имя формы?
Всмысле что у у меня есть Private sub и мне нужно в него отправить одну цифру (эта цифра является номером формы как бы конструктор стандартно Form1, Form2, Form3 ... у них общее Form разные цифры и я хочу отпралять только её) Пыталься сделать :DD Controls("Form" & Value). height - потерпел feil
Дак вот как же "собрать" имя формы??

[- к содержанию -]

Ответ #3 @Алексей Немиро 29.07.2013 19:03
Вопрос в полной мере неясен.

Имя элементов, коим является и форма, лежит в свойстве Name:
For i As Integer = 0 To 10
  Dim f As New System.Windows.Forms.Form()
  f.Name = String.Format("Form{0}", i) '"Form" & i
  f.Show()
Next

Только имя практически ничего полезного не даст, если не считать возможность поиска формы по имени (например, в коллекции открытых форм приложения: Application.OpenForms).

Что касается конструктора, то создать форму с нуля (на основе класса System.Windows.Forms.Form, как в первом примере) не получится. Нужно создавать на основе уже существующей форме (как во втором примере). Для этого нужно добавить метод New, лучше два. Один пустой, чтобы не было проблем с редактированием формы в дизайнере форм. Второй - с нужными параметрами. Во всех случаях нужно перед своим кодов вызывать метод InitializeComponent (Visual Studio об этом должна предупредить).
  Public Sub New()
    ' Этот вызов является обязательным для конструктора.
    InitializeComponent()
    ' Добавьте все инициализирующие действия после вызова InitializeComponent().
  End Sub

  Public Sub New(formNumber As Integer)'свой параметр - formNumber
    ' Этот вызов является обязательным для конструктора.
    InitializeComponent()
    ' Добавьте все инициализирующие действия после вызова InitializeComponent().


'дальше можно обрабатывать свои параметры
  End Sub
Если, например, код конструктора будет описан в Form1, то создать экземпляр формы можно так:
Dim f As New Form1(123)'передаем число 123 в форму
В конструкторе формы можно сделать вывод переданного при создании формы параметра:
  Public Sub New(formNumber As Integer)'свой параметр - formNumber
    ' Этот вызов является обязательным для конструктора.
    InitializeComponent()
    ' Добавьте все инициализирующие действия после вызова InitializeComponent().


    MsgBox(formNumber) 'выведет сообщение: 123
  End Sub

[- к содержанию -]

Ответ #4 @Crash666 29.07.2013 19:53
Вопрос в полной мере неясен.
Я хотел сказать что формы уже существуют их не надо создавать нужно просто собрать их имя что бы обратится к ним:)

[- к содержанию -]

Ответ #5 @Crash666 29.07.2013 19:56
Private Sub Test(Value as integer) ' Допустим сделаем так (Test(2))
  Msgbox(Controls("Form" & Value).Height) 'Вот так я пытался обратится к форме №2
End Sub

[- к содержанию -]

Добавить свой ответ в эту тему · В теме есть еще 19 ответов. Смотреть все ответы.
TreeView @capetownn 29.07.2013 14:37
Длина входного массива больше числа столбцов в этой таблице
Среда Visual Basic STUDIO’2010 Professional
TreeView, код события щелчка на кнопке,
На основе примера PersonalNotes.zip, скопированного на одном из форумов,
пытаюсь создать свой TreeView.

Private Sub tsmAdd_Cont_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles tsbAddContact.Click
        Dim newnode As TreeNode
        Dim NC As New dlg_Kontact_my 
        If Me.tvwStructure.SelectedNode Is Nothing Then Exit Sub
        If NC.ShowDialog = Windows.Forms.DialogResult.OK Then
            If Me.tvwStructure.SelectedNode.Tag.Equals("Folder") Then
                Try
                    Me.Address_table.Rows.Add(NC.Cont_row) ' error_1: 
                    ' Длина входного массива больше числа столбцов в этой таблице.

                    newnode = Me.tvwStructure.SelectedNode.Nodes.Add(NC.Kontakt_name, NC.Kontakt_name, "Contact", "Contact open")
                    newnode.Tag = "Kontact"
                Catch ex As DataException
                    MsgBox("Не допускаются одинаковые имена контактов в одном узле!", MsgBoxStyle.Exclamation)
                End Try
            End If
        End If

    End Sub

Public Class dlg_Kontact_my
    Dim Kontact_data(11) As Object
    Dim Kontact_data_edit(11) As String

    Friend Property Cont_row() As Object()
        Get
            Cont_row = Kontact_data
        End Get
        Set(ByVal value As Object())
            Kontact_data = value
        End Set
    End Property

Private Sub dlg_Kontact_my_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Me.txtName.Text = Kontact_data(1)
        Me.txtFamily.Text = Kontact_data(2)
        Me.txtPsevdo.Text = Kontact_data(3)
        Me.mtxt_work.Text = Kontact_data(4)
        Me.mtxt_home.Text = Kontact_data(5)
        Me.mtxt_mobile.Text = Kontact_data(6)
        Me.mtxt_fax.Text = Kontact_data(7)
        Me.txtMails.Text = Kontact_data(8)
        Me.txtWorkAddress.Text = Kontact_data(9)
        Me.txtHomeAddress.Text = Kontact_data(10)
        Me.txtOther.Text = Kontact_data(11)
    End Sub
End Class
СПАСИБО!

[- к содержанию -]

Ответ #1 @Алексей Немиро 29.07.2013 15:19
В массивах и коллекциях отсчет начинается с нуля, а не с единицы. Т.е. Dim Kontact_data(11) As Object в переменной Kontact_data будет 12 (0 + 11) элементов, а не 11.

Если Me.Address_table - это объект типа DataTable, то у него Columns (колонки) тоже являются коллекцией, и отсчет начинается с нуля. Т.к. массив Kontact_data(11) содержит 12 элементов, они естественно не умещаются в 11 колонок и возникает ошибка. Нужно либо сократить массив до 11 элементов: Kontact_data(10), либо добавить еще одну колонку в Me.Address_table.

[- к содержанию -]

Добавить свой ответ в эту тему
Как создать свой стиль ну или нечто похожее на это:
http://vk.com/typical_proger?z=photo-30666517_282293730%2Falbum-30666517_157021181
http://vk.com/typical_proger?z=photo-30666517_282365184%2Falbum-30666517_157021181
http://vk.com/typical_proger?z=photo-30666517_282457719%2Falbum-30666517_157021181
http://vk.com/typical_proger?z=photo-30666517_282497930%2Falbum-30666517_157021181
http://vk.com/typical_proger?z=photo-30666517_282559367%2Falbum-30666517_157021181
http://vk.com/typical_proger?z=photo-30666517_282610298%2Falbum-30666517_157021181

[- к содержанию -]

Ответ #1 @Алексей Немиро 27.07.2013 22:26
Темы - это обычные файлы ini (текстовые файлы из древних времен, которые можно открыть блокнотом).
Лежат тут: C:\Windows\Resources\Themes

Можно поковырять и понять что к чему, но проще найти софт для этого. Наверняка такой есть.

[- к содержанию -]

Ответ #2 @Crash666 27.07.2013 22:35
Ubuntu вроде это?

[- к содержанию -]

Ответ #3 @Алексей Немиро 27.07.2013 22:42
Ubuntu вроде это?
Ubuntu - это операционная система, базирующаяся на Linux, к Windows никакого отношения не имеет :)

[- к содержанию -]

Ответ #4 @Crash666 27.07.2013 22:46
А что вбить в поиск?

[- к содержанию -]

Ответ #5 @Crash666 27.07.2013 22:49
Http://forum.oszone.net/thread-149698.html что то нашел

[- к содержанию -]

Добавить свой ответ в эту тему · В теме есть еще 9 ответов. Смотреть все ответы.
При расчете формул мне программа выдает такое число 0,285714285714286, подскажите пожалуйста функцию которая могла бы округлить мой результат до трех знаков после запятой , т.е. до такого вида 0,285

[- к содержанию -]

Ответ #1 @Shark1 27.07.2013 15:18
Подойдет так ? :

На форме Label1 - источник,Label2 - вывод (для наглядности)


Dim value As Double
   If Label1.Text <> "" Then
      value = Val(Replace(Label1.Text, ",", "."))
   Label2.Text = Math.Round(value, 3)
End If

[- к содержанию -]

Ответ #2 @Дерепа Алексей 27.07.2013 18:14
Огромное спасибо!
У меня все получилось только я немного переделал на:
TextBox2.Text = Math.Round(Val(TextBox1.Text), 3)
Все работает )))

[- к содержанию -]

Добавить свой ответ в эту тему
Библиотека dll @i32 27.07.2013 10:02
Привет всем..Пробую библу (Dll) написанную на С# .И возможно Framework2 .Я как то
Должен это дело обозначить в VB.net Framework4 проекте.Порыл в гугле нарыл вот это..
<startup useLegacyV2RuntimeActivationPolicy="true">
    <supportedRuntime version="v4.0"/>
</startup>
Что то поясните по этому поводу..Спасибо...

[- к содержанию -]

Ответ #1 @Алексей Немиро 27.07.2013 12:52
Зачем обозначать? Сборки из старых версий .NET Framerwork должны работать в новых без проблем.

[- к содержанию -]

Ответ #2 @Алексей Немиро 27.07.2013 13:02
Если не видит dll-ку, то дело может быть в этом.

[- к содержанию -]

Ответ #3 @i32 27.07.2013 16:04
2-ой - сделано..
Note по установке ...dll needs Visual C++ 2008 Runtime. When deploying your application be sure to install C++ runtime (x86, x64)..
Експекшен msg говорит была попытка загрузить файл имеющего другой формат.
В других проектах (Я их 3 сделал с этой библой..)просто выходит из отладки..( без експекшен)- наверно тоже самое..
Есть исходник на C# .Но похоже он там может что то добавил (Ссылок на что то или фиг-знает )
Вот это сбило с току..
Попробуйте добавить <configuration> <startup useLegacyV2RuntimeActivationPolicy="true"> <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/> </ запуске> </ Configuration> вашему App.config. Это позволяет ссылаться на эту DLL без изменения рамках всей вашей версии проекта.
Буду думать..

[- к содержанию -]

Ответ #4 @i32 27.07.2013 16:09
Вот такая ошибка еще..??
Сборка для смешанного режима построена на основе версии "v2.0.50727" среды выполнения и не может быть загружена в среде выполнения 4.0 без дополнительных конфигурационных данных.

[- к содержанию -]

Ответ #5 @Алексей Немиро 27.07.2013 17:37
Сборка для смешанного режима построена на основе версии "v2.0.50727" среды выполнения и не может быть загружена в среде выполнения 4.0 без дополнительных конфигурационных данных.
Это вероятно из-за useLegacyV2RuntimeActivationPolicy.

[- к содержанию -]

Добавить свой ответ в эту тему · В теме есть еще 12 ответов. Смотреть все ответы.

Все темы и обсуждения

Вакансии в IT

Программист

Россия, Иркутск | Работа в офисе | 6 000,00 KBP

Программист

Россия, Иркутск | Работа в офисе | 20 000,00 KBP

Web-программист

Россия, Иркутск | Работа в офисе | 20 000,00 KBP

Программист 1С

Россия, Иркутск | Работа в офисе

Программист 1С

Россия, Иркутск | Работа в офисе

Инженер-программист

Россия, Иркутск | Работа в офисе

Программист 1С

Россия, Тюмень | Работа в офисе | 45 000,00 KBP

Инженер-программист

Россия, Новосибирск | Работа в офисе

PHP-программист

Россия, Новосибирск | Работа в офисе | 24 000,00 KBP

PHP-программист, знакомый с продуктами IPB

Россия, Новосибирск | Работа в офисе | 24 000,00 KBP

Все вакансии в IT · Создать резюме

[- к содержанию -]

Новости мира IT

Владельца Chronopay посадили на 2,5 года за атаку на «Аэрофлот»

Тушинский районный суд Москвы приговорил владельца платежной системы Chronopay к 2,5 годам колонии общего режима за атаку на сайт платежной системы Assist, из-за которой пострадал «Аэрофлот». Атака прошла с 15 по 24 июля 2010 года и вывела из строя сайт Assist. Как следствие, «Аэрофлот» в течение 9 дней не мог продавать билеты через интернет.

01.08.2013 11:55 · Категория: Бизнес в IT · Источник: Lenta.ru

[- к содержанию -]

Сноуден рассказал о еще одной масштабной программе интернет-слежки

Сегодня пресса сорвала крышку с еще одной спорной программы наблюдения, реализуемой в недрах АНБ США. Новая программа собирает данные по "практически всему, что пользователь делает в интернете". Публикация новых данных, компрометирующих АНБ, происходит на фоне того, как вокруг ведомства уже бушуют скандалы, связанные с массовыми прослушками людей.

Как сегодня пишет газета The Guardian, программа XKeyscore охватывает анализ электронной почты, социальных ресурсов и истории интернет-браузинга пользователей. Все это доступно аналитикам АНБ с минимальными затратами на авторизацию. Газета отмечает, что данные о программе были получены от Эдварда Сноудена. Сегодня же Guardian публикует сопроводительную историю о XKeyscore.

Интересно отметить, что новый удар по АНБ был нанесен за пару часов до того, как глава ведомства, генерал Кит Александер собрался выступить на хакерской конференции Black Hat 2013 в Лас-Вегасе.

Согласно Guardian, секретная программа шпионажа АНБ позволяет военным аналитикам ведомства осуществлять поиск по базе данных, содержащей электронные адрес, логи онлайн-чатов, а также истории браузинга миллионов человек. В документах, попавших в адрес редакции, сказано, что XKeyscore - это самая широкая программа работы разведки в интернете. Также издание отмечает, что по своим масштабам XKeyscore не уступает ранее известной программе PRISM, а возможно и превосходит ее.

Если PRISM полагается на уже хранящиеся данные и досудебный доступ к ним на серверах интернет-компаний Google, Yahoo, Facebook, Apple и AOL (сами компании это опровергают - прим), то XKeyscore способна в реальном времени анализировать данные во время их передачи за счет сотрудничества с телеком-компаниями. В статье приводятся данные о том, как именно АНБ США в реальном времени перехватывают данные о целевых электронных адресах.

01.08.2013 11:54 · Категория: Безопасность · Источник: CyberSecurity.ru

[- к содержанию -]

Яндекс начинает продавать дополнительное место в облачном хранилище

Компания Яндекс начинает продажу дополнительного места на облачном сервисе Диск. Пользователи по всему миру могут увеличивать объём своего облака на Яндексе без ограничений.

«Чем больше у человека интернет-устройств, тем больше его потребность в хранении файлов в облаке. Наиболее активные пользователи достаточно быстро занимают всё место. Специально для них мы разработали гибкие условия покупки пространства по самым низким ценам на рынке», — говорит Наталья Хайтина, руководитель облачных сервисов Яндекса.

Яндекс.Диск предлагает три пакета дополнительного пространства. Каждый можно приобрести на месяц или сразу на год. Ограничения на количество купленных пакетов нет. По истечении срока файлы не пропадут, с ними также можно будет работать, но новые данные на Диск загрузить не получится.

Пакет на 10 ГБ стоит 30 и 300 рублей на месяц и год соответственно, 100 ГБ — 150 и 1500 рублей, 1 ТБ — 900 и 9000. Российские и украинские пользователи могут заплатить Яндекс.Деньгами. Банковские карты Visa и MasterCard принимаются из любых стран, при таком способе оплаты можно включить автоматическое продление.

Яндекс.Диск был запущен в апреле 2012 года и доступен на русском, украинском, английском и турецком языках. Сейчас у сервиса около 12 миллионов пользователей. Бесплатно Яндекс предлагает до 20 ГБ облачного пространства. Кроме того, на Диске по умолчанию и без ограничений хранятся вложенные файлы из Яндекс.Почты пользователя.

31.07.2013 11:24 · Категория: Бизнес в IT · Источник: CyberSecurity.ru

[- к содержанию -]

Все новости


Подпишитесь на тематические RSS-ленты Kbyte.Ru, чтобы быть в курсе последних новостей:

Основная лента · Форумы (темы и сообщения) · Visual Basic 5.0/6.0 · Visual Basic .NET · C# (Си шарп) · Delphi · JavaScript · ActionScript · ASP .NET · ASP .NET MVC

Ищите Kbyte.Ru в социальных сетях FaceBook, ВКонтакте, Twitter.

Если вы занимаетесь программированием, то наверняка вам пригодятся хитрые инструменты.


Международный портал для программистов и разработчиков Kbyte.Ru основан в 2006 году. Целью портала является объединение программистов и специалистов IT-бизнеса, студентов и преподавателей для обмена опытом и знаниями, оказания помощи во всех делах и начинаниях в области IT.
Kbyte.Ru является парнёром компаний Mail.Ru Group, WebMoney Transfer, Ozon.Ru и др.
Выпуск рассылки подготовлен автоматически. Все права на материалы выпуска принадлежат Kbyte.Ru если иное не указано отдельно.


В избранное