Просмотр "Уроки C#"

SetParent — дочернее окно в свое окно

В данном примере, мы откроем дочернее окно в своем окне и в этом нам поможет SetParent

Функция SetParent заменяет родительское окно заданного дочернего окна.

Public Class Form1
    Private Declare Function SetParent Lib "user32" (ByVal hWndChild As Integer, ByVal hWndNewParent As Integer) As Integer
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim OPF As New OpenFileDialog
        Dim prc As New Process
        OPF.Filter = ".EXE|*.exe"
        If OPF.ShowDialog = DialogResult.OK Then
            WindowState = FormWindowState.Maximized
            prc = Process.Start(OPF.FileName) ' запускаем процесс
        End If
        prc.WaitForExit(1000) ' маленькая задержка для появления окна, хоть WaitForExit совсем не для этой цели
        SetParent(prc.MainWindowHandle.ToInt32, Me.Handle.ToInt32) ' приминяем
    End Sub
End Class

setparent 438x350 SetParent   дочернее окно в свое окно

Подробнее »

  Метки: , , , ,
  Евгений
  Просмотров: 6 677
  Запись опубликована в 21:02

XML-комментарии

Каждый XML-комментарий в C#, начинается с трех слэшей «///», а в Visual Basic.NET с трех одиночных кавычек (апострофов) «' ' '». В C#, обычные комментарии начинаются с двух слэшей, а третий слэш говорит синтаксическому анализатору, что это XML-комментарий. В барсике, аналогично, только обычный комментарий начинается с одной, одиночной кавычки.

Для чего же нужны XML-комментарии? 

Парсить XML-файл настоящий кайф, то бишь, ничего сложного в этом нет, так вот, одним из главных особенностей XML-комментариев является создание документации прямо из исходных файлов проекта, а так же документация самого кода - классы, процедуры, модули, структуры, функций, их аргументы (параметры). С помощью синтаксического анализатора (parser'a) можно раскрывать теги XML-комментария, внутри которого, находится дополнительная информация.

Подробнее »

  Метки: , , ,
  Евгений
  Просмотров: 19 864
  Запись опубликована в 08:52

Консольное приложение на вычисление дискриминанта

Консольный вариант вычисления дискриминанта и его корней на C#

discr 300x178 Консольное приложение на вычисление дискриминанта

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApp
{
    class Program
    {
        static void Main(string[] args)
        {
            Disc(); //при запуске, вызываем процедуру ↓
        }
        static void Disc()
        {
            double a, b, c, x1, x2, D;
            //ввод значений
            Console.WriteLine("Введите значение переменной A");
            a = Convert.ToDouble(Console.ReadLine());
            Console.WriteLine("Введите значение переменной B");
            b = Convert.ToDouble(Console.ReadLine());
            Console.WriteLine("Введите значение переменной C");
            c = Convert.ToDouble(Console.ReadLine());
            D = Math.Pow(b, 2) - (4 * a * c); //вычисление дискриминанта
            Console.WriteLine("Дискриминант = " + D);
            // два корня
            if (D > 0)
            {
                Console.WriteLine("Два корня:");
                x1 = (-b + Math.Sqrt(D)) / (2 * a);
                x2 = (-b - Math.Sqrt(D)) / (2 * a);
                Console.WriteLine("X1 = " + x1);
                Console.WriteLine("X2 = " + x2);
                //один корень
            }
            else if (D == 0)
            {
                Console.WriteLine("Один корень:");
                x1 = -b / (2 * a);
                Console.WriteLine("X = " + x1);
            }
            //нет корней
            else
            {
                Console.WriteLine("Нет корней");
            }
            //сообщение, если захотим решить новое уравнение - нужно нажать клавишу Enter
            Console.WriteLine("Решить новое? Нажмите клавишу Enter...");
            ConsoleKeyInfo k = Console.ReadKey();
            if (k.Key == ConsoleKey.Enter) {
                Console.Clear();
                Disc();
            }
        }
            }
        }

Загрузить проект

Пример на Visual Basic.NET

Если нужно на Visual C++, пишите, попробую написать.

  Метки: ,
  Евгений
  Просмотров: 13 282
  Запись опубликована в 14:25

Функция ShowCursor

Функция ShowCursor показывает или скрывает курсор мыши.

  • True - показать курсор
  • False - скрыть курсор

Информация по функции

using System.Runtime.InteropServices;
using System.Threading;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        // function
        [DllImport("user32.dll")]
        static extern int ShowCursor(bool bShow);
        private void button1_Click(object sender, EventArgs e)
        {
            ShowCursor(false); // hide cursor
            Thread.Sleep(3000); // wait
            ShowCursor(true); // show cursor
        }
    }
}

Пример на VB.NET

ShowCursor Функция ShowCursor

  Метки: , , ,
  Евгений
  Просмотров: 3 982
  Запись опубликована в 10:29

Растягиваем форму за Label

Пример на C#, как растягивать форму за какой-либо объект. Добавляем Label, пришвартовываем его к нижнему правовому углу. Он будет служить у нас краем, за который можно будет растягивать форму.

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        Point pt = new Point();
        private void Form1_Load(object sender, EventArgs e)
        {
            FormBorderStyle = FormBorderStyle.None;
            label1.Anchor = AnchorStyles.Bottom | AnchorStyles.Right;
        }

        private void Label1_MouseMove(object sender, MouseEventArgs e)
        {
            if (e.Button == MouseButtons.Left)
            {
                Size = new Size(Width + (e.X - pt.X), Height + (e.Y - pt.Y));
            }
        }

        private void Label1_MouseDown(object sender, MouseEventArgs e)
        {
            pt = new Point(e.X, e.Y);
        }
    }
}

Загрузить проект

Растягивание формы на VB.NET

form gif Растягиваем форму за Label

  Метки: ,
  Евгений
  Просмотров: 5 641
  Запись опубликована в 12:37

Преобразователи кода

Накопал еще парочку конвертеров кода к дополнению первой статьи.

filessconvert 300x155 Преобразователи кода

В копилке нашел программу с помощью которой так же можно осуществлять перевод кода. Есть бесплатные версии с ограничениями, а так программа стоит денег. Загрузить Free-версии.

Instant 300x195 Преобразователи кода

  Метки: , , ,
  Евгений
  Просмотров: 4 573
  Запись опубликована в 14:39

Красивые панельки (Panel)

Думаю можно маленько приукрасить панельки, вы согласны?

Если да, то добавляйте на форму две панели.

panels 300x127 Красивые панельки (Panel)

На VB.NET:

Imports System.Drawing.Drawing2D
Public Class Form1
    Private Sub Panel1_Paint(ByVal sender As System.Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles Panel1.Paint
        e.Graphics.SmoothingMode = SmoothingMode.AntiAlias
        e.Graphics.FillRectangle(Brushes.WhiteSmoke, New Rectangle(0, 0, sender.width, sender.height))
        e.Graphics.DrawRectangle(Pens.Gainsboro, New Rectangle(0, 0, sender.width - 1, sender.height - 1))
        e.Graphics.DrawRectangle(Pens.White, New Rectangle(1, 1, sender.width - 3, sender.height - 3))
    End Sub
    Private Sub Panel2_Paint(ByVal sender As System.Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles Panel2.Paint
        e.Graphics.SmoothingMode = SmoothingMode.AntiAlias
        e.Graphics.FillRectangle(New SolidBrush(Color.FromArgb(235, 235, 235)), New Rectangle(2, 0, sender.Width, sender.Height))
        e.Graphics.FillRectangle(New SolidBrush(Color.FromArgb(249, 249, 249)), New Rectangle(1, 0, sender.Width - 3, sender.Height - 4))
        e.Graphics.DrawRectangle(New Pen(Color.FromArgb(214, 214, 214)), 0, 0, sender.Width - 2, sender.Height - 3)
    End Sub
End Class

Подробнее »

  Метки: , , , ,
  Евгений
  Просмотров: 7 972
  Запись опубликована в 17:19

Смена фона рабочего стола

Нашел готовый класс смены фона рабочего стола

Проверял только на Windows 7. Код думаю будет понятен. Настройки стиля меняются в реестре, сам фон меняется с помощью SPI (SystemParametersInfo)

Загрузить проект [VB.NET]

Загрузить проект [C#]

Какой был и на какой изменил:

newfon1 300x221 Смена фона рабочего стола

newfon2 300x167 Смена фона рабочего стола

  Метки: , , ,
  Евгений
  Просмотров: 10 821
  Запись опубликована в 13:46

Загрузчик видео с YouTube

Давно нашел проект на C# по загрузке видео с YouTube

Думалось перевести на барсик, но как-то не вышло. Так что держите на C#, но не обижайтесь :3

Загрузить проект

youtubedownloader Загрузчик видео с YouTube

  Метки: , , ,
  Евгений
  Просмотров: 12 504
  Запись опубликована в 08:05

Технология ClickOnce на примере

ClickOnce — технология Майкрософт для развёртывания приложений, основанных на фреймворках Windows Forms или Windows Presentation Foundation. Она подобна технологии Java Web Start для Java Platform. Данная технология доступна с версии .NET 2.0 и выше.

ClickOnce позволяет пользователю устанавливать и запускать Windows приложение, кликая по ссылке на веб-странице, либо в сетевом окружении. Основной принцип ClickOnce — простое развёртывание Windows-приложений пользователем. Кроме того, ClickOnce нацелена на решения трёх других проблем, связанных с обычной моделью развертывания:

  • сложность в обновлении развертываемого приложения;
  • воздействие приложения на компьютер пользователя;
  • необходимость административных полномочий для установки приложения.

ClickOnce-приложения изолированы друг от друга, и одно приложение не может повлиять на работу других.

Подробное описание на  MSDN

Смотрим видео, записывал не я.

  Метки: , ,
  Евгений
  Просмотров: 5 857
  Запись опубликована в 08:50

Страницы:12»