Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > Windows Forms
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.08.2021, 13:37   #1
singrayfox
Новичок
Джуниор
 
Регистрация: 20.08.2021
Сообщений: 3
Радость Анимация Picture box+trackbar

Здавствуйте я с Краснодара, радиолюбитель-инженер по радиосистемам сотовой связи) , немогу написать програмку на c#..уже голову всю сломал..

проект такой:

Я создал в WinForms панель радиоприёмника

программа шкала.jpg

На ней трекбар лейблы и текстовые поля, эта программа при перидвижение трекбара менят свою частоту в верхнем текстбоксе, частота как вы видите меняется от 500килогерц до 1600. Естественно там описана формула вычесления частоты гетеродина на частоту радиостанции = результат это промежуточная частота ПЧ, которая появляется в текстбоксе Промежуточная частота)(частота радиостанции - частота гетеродина + разница) , помогите пожалуста , как сделать так чтобы при перемещении ползунка(value-значение) у меня двигалась стрелка в pictureboxe??(красный вертикальный прямоугольник)

Код winforms :

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 radiodualnew
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}



private void stationfrequencytrackbar_Scroll(obj ect sender, EventArgs e)
{


}

private void stationfrequencytxtbox_TextChanged( object sender, EventArgs e)
{

}



private void geterodynefrequencytxtbox_TextChang ed(object sender, EventArgs e)
{

}

private void timer1_Tick(object sender, EventArgs e)
{
int stationfreq = stationfrequencytrackbar.Value; // настройка на частоту радиостанции
const int geterodinediff = 465; // постоянная частота разница 465
int resultgeterodindiff;
int iffreq;

//сверху назначаем переменные//



stationfrequencytxtbox.Text = stationfreq.ToString(); //Показываем частоту радиостанции в текстбоксе
red_cursor.Location =

resultgeterodindiff = stationfreq + geterodinediff; //сумма частоты радиостанции + частоты разницы гетеродина

geterodynefrequencytxtbox.Text = resultgeterodindiff.ToString(); //частоту гетеродина выводим в текстбокс

iffreq = resultgeterodindiff - stationfreq; // результат частоты гетеродина вычитаем из частоты радиостанции получаем промежуточную частоту IF

iffreqtxtbox.Text = iffreq.ToString(); // промежуточную частоту выводим на текстбокс



this.Update();
this.Refresh();


}

private void red_cursor_Click(object sender, EventArgs e)
{

}
}
}


Архив с программой я приложил)
Вложения
Тип файла: rar radiodualnew.rar (60.9 Кб, 1 просмотров)
singrayfox вне форума Ответить с цитированием
Старый 20.08.2021, 13:46   #2
singrayfox
Новичок
Джуниор
 
Регистрация: 20.08.2021
Сообщений: 3
По умолчанию

ой ..в первом слове опечатка..)) пропустил р
singrayfox вне форума Ответить с цитированием
Старый 20.08.2021, 14:17   #3
singrayfox
Новичок
Джуниор
 
Регистрация: 20.08.2021
Сообщений: 3
По умолчанию

дальше я ее буду дополнять функциями , может быть туда и sdr модуль встрою библиотеку для связи с драйверами..

Посмотрите ,скачайте архив , она просто вычесляет значение гетеродина и разностной постоянной частоты ПЧ , как мне сделать чтобы синхроно с ползунком перемещался туда сюда красный picturebox ?
singrayfox вне форума Ответить с цитированием
Старый 11.11.2021, 22:29   #4
NeLirik
Пользователь
 
Регистрация: 09.11.2021
Сообщений: 11
По умолчанию Заставить двигаться красную ленту не проблема

В общем убрал из программы неиспользуемые обработчики событий и заставил двигаться стрелку.
Более менее синхронно.

Обязательно надо изменить интервал "тика" таймера. Я поставил 100. Можно больше. Меньше думаю не стоит на этапе разработки программы.

Как физик готов что-то, подсказывать в написании программы, то же изучаю C# для написания программы, которую бросил лет 25 назад.


Код:
namespace radiodualnew
{
    public partial class Form1 : Form
    {

        void Red_cursor_Move(int position)
        {
            Point redcursor = new Point(dial.Location.X, dial.Location.Y);
            redcursor.X += (position-490);
            red_cursor.Location = redcursor;
            red_cursor.Invalidate();
        }

        public Form1()
        {
            InitializeComponent();
        }

     
        private void timer1_Tick(object sender, EventArgs e)
        {
            int stationfreq = stationfrequencytrackbar.Value; // настройка на частоту радиостанции
            const int geterodinediff = 465;                     // постоянная частота разница 465
            int resultgeterodindiff;
            int iffreq;

            //сверху назначаем переменные//



            stationfrequencytxtbox.Text = stationfreq.ToString();   //Показываем частоту радиостанции в текстбоксе
            //stationfreq.ToString = red_cursor.DragDrop();

            resultgeterodindiff = stationfreq + geterodinediff;     //сумма частоты радиостанции + частоты разницы гетеродина 

            geterodynefrequencytxtbox.Text = resultgeterodindiff.ToString();    //частоту гетеродина выводим в текстбокс 

            iffreq = resultgeterodindiff - stationfreq;     // результат частоты гетеродина вычитаем из частоты радиостанции получаем промежуточную частоту IF

            iffreqtxtbox.Text = iffreq.ToString(); // промежуточную частоту выводим на текстбокс
            Red_cursor_Move(stationfreq);

           // this.Update();
            //this.Refresh();


        }

     
        }
NeLirik вне форума Ответить с цитированием
Старый 11.11.2021, 22:39   #5
NeLirik
Пользователь
 
Регистрация: 09.11.2021
Сообщений: 11
По умолчанию Движение красного флажка

Идея была просто в том, чтобы менять положение курсора
Вложения
Тип файла: rar radiodualnew.rar (186.0 Кб, 1 просмотров)
NeLirik вне форума Ответить с цитированием
Старый 12.11.2021, 09:40   #6
WorldMaster
Старожил
 
Аватар для WorldMaster
 
Регистрация: 25.08.2011
Сообщений: 2,841
По умолчанию

Ну вот как то так .. при желании можно метки нанести на картинку.
А с таймером это мне кажется вы лишнее сделали.
Все должно делаться по событию трекера.
Изображения
Тип файла: jpg anim.jpg (42.5 Кб, 1 просмотров)
Вложения
Тип файла: 7z radiodualnew.7z (133.5 Кб, 0 просмотров)
Skype - wmaster_s E-Mail - WorldMasters@gmail.com
Работаем по 3 критериям - быстро, качественно, недорого. Заказчик выбирает любые два.
WorldMaster вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
C#-класс Picture Anton19901505 Помощь студентам 0 01.01.2018 15:00
Рисование в picture box (C#) ne11son Общие вопросы .NET 6 14.11.2015 00:36
Элемент динамической индикации на Picture box bondik Общие вопросы .NET 1 31.03.2012 21:07
Resize picture artush1984 Общие вопросы C/C++ 0 28.12.2010 15:45