ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > Программирование > С/С++, C#, Delphi, .NET, Asm
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

Перетаскивание картинки по форме С#
  #1  
Старый 08.04.2010, 12:49
madwort
Новичок
Регистрация: 29.03.2010
Сообщений: 8
Провел на форуме:
12954

Репутация: 0
По умолчанию Перетаскивание картинки по форме С#

Уважаемые товарищи программисты!
Подскажите своему начинающему коллеге.
Есть объект класса, описывающий резистор. В нем задано сопротивление и определена картинка, отображающая резистор.
Как сделать следующее:
Необходимо при создании нового объекта резистор отобразить его картинку на форме, и реализовать её перетаскивание по форме?
(P.S. Все это для последующей реализации "сцепления" группы резисторов в цепь и рассчета цепи)
Можно ли перетаскивать картинку по форме или надо создать какой-нибудь контейнер, например панель, и перетаскивать картинку там?
Буду очень признателен за помощь.
 
Ответить с цитированием

  #2  
Старый 08.04.2010, 12:57
cheater_man
Постоянный
Регистрация: 13.11.2009
Сообщений: 437
Провел на форуме:
709575

Репутация: 17
По умолчанию

простой пример перетаскивания квадрата по форме с помощью мыши
Код:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace WindowsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        public int mouse_x;
        public int mouse_y;
        protected override void OnPaint(PaintEventArgs e)
        {
            base.OnPaint(e);
            e.Graphics.DrawRectangle(new Pen(Brushes.Red), mouse_x, mouse_y, 20, 20);
        }

        private void Form1_MouseMove(object sender, MouseEventArgs e)
        {
            mouse_x = e.X;
            mouse_y = e.Y;
            Invalidate();
        }
    }
}
 
Ответить с цитированием

  #3  
Старый 08.04.2010, 15:22
madwort
Новичок
Регистрация: 29.03.2010
Сообщений: 8
Провел на форуме:
12954

Репутация: 0
По умолчанию

to cheater_man:Спасибо!

Но как реализовать перетаскивание именно загруженной картинки по щелчку мыши??
 
Ответить с цитированием

  #4  
Старый 08.04.2010, 15:33
cheater_man
Постоянный
Регистрация: 13.11.2009
Сообщений: 437
Провел на форуме:
709575

Репутация: 17
По умолчанию

Цитата:
Сообщение от madwort  
to cheater_man:Спасибо!

Но как реализовать перетаскивание именно загруженной картинки по щелчку мыши??
С картинкой почти тоже самое. Опиши все по подробней, а то я тебя так не пойму.
Каким методом загружаешь картинку?
 
Ответить с цитированием

  #5  
Старый 08.04.2010, 15:54
madwort
Новичок
Регистрация: 29.03.2010
Сообщений: 8
Провел на форуме:
12954

Репутация: 0
По умолчанию

Картинку я добавил в файл с ресурсами проекта.
после создал класс Resistor
в описании класса указал путь к картинке из ресурсов

Код:
namespace Circuit
{
    class Resistor
    {
        Image ResistorImage =Circuit.Properties.Resources.ResistorPict;
        int resistance;
    }
}

После хочу добавить объект класса (чтоб при создании объекта на форме отрисовывалась картинка элемента, которую потом можно было перетаскивать по форме)

Код:
namespace Circuit
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void добавитьЭлементToolStripMenuItem_Click(object sender, EventArgs e)
        {
            Resistor Detail = new Resistor();
            designerPanel.Invalidate();
        }
    }
}
Но как отобразить картинку класса и перетаскивать ее по щелчку мыши??
 
Ответить с цитированием

  #6  
Старый 08.04.2010, 17:28
cheater_man
Постоянный
Регистрация: 13.11.2009
Сообщений: 437
Провел на форуме:
709575

Репутация: 17
По умолчанию

Тут не так все просто как кажется, если тебе потом нужно делать расчеты по построенной тобой цепи, тебе нужно будет юзать контейнеры.
При создании нового компонента пихаешь его в контейнер. И клас резистора должен будет наследовать клас Component.А отобразить компонент на форме это только пол дела.
Что-то типо этого.
Скинь свой проект может чем-то и помогу.
Вот пример перемещения картинки по щелчку мыши
Код:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace _23
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        private void button1_Click(object sender, EventArgs e)
        {
            if (openFileDialog1.ShowDialog() == DialogResult.OK)
            {
                Image img = Image.FromFile(openFileDialog1.FileName);
                pictureBox1.Image = img;
            }
        }

        private void Form1_MouseMove(object sender, MouseEventArgs e)
        {
            if (coun == 1)
            {
                pictureBox1.Location = new System.Drawing.Point(e.X-50, e.Y-50);
            }
        }
         int coun=0;
        private void pictureBox1_MouseDown(object sender, MouseEventArgs e)
        {
            if (coun == 0)
                coun++;
            else coun = 0;

        }
    }
}

Последний раз редактировалось cheater_man; 08.04.2010 в 18:08..
 
Ответить с цитированием

  #7  
Старый 08.04.2010, 20:35
madwort
Новичок
Регистрация: 29.03.2010
Сообщений: 8
Провел на форуме:
12954

Репутация: 0
По умолчанию

Хотел бы я скинуть проект, да там нет почти ничего пока. Недавно начал изучать С#, решил задачку поинтересней сделать, да и завис сразу. так что в проекте пока пусто. первый шаг дается с трудом...
 
Ответить с цитированием

  #8  
Старый 08.04.2010, 20:41
cheater_man
Постоянный
Регистрация: 13.11.2009
Сообщений: 437
Провел на форуме:
709575

Репутация: 17
По умолчанию

Цитата:
Сообщение от madwort  
Хотел бы я скинуть проект, да там нет почти ничего пока. Недавно начал изучать С#, решил задачку поинтересней сделать, да и завис сразу. так что в проекте пока пусто. первый шаг дается с трудом...
Читай Джесс Либерти программирование на c#
Трей Нэш C# 2008 краткий курс + source. И юзай msdn там все есть
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Где можно достать картинки для авторизаций? Demon1X ПО для Web разработчика 4 01.03.2010 04:53
Картинки на стены групп. DIEZalok Социальные сети 0 05.09.2009 11:46
Вывод картинки .::BARS::. PHP, PERL, MySQL, JavaScript 5 14.12.2008 14:17
Ems картинки NIGHT_WOLF Сотовый фрикинг 2 11.01.2006 18:05
Картинки для новостей. GreenBear Болталка 3 02.08.2005 19:24



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ