Member 13416055 Ответов: 0

Как использовать событие нажатия клавиши и поместить график в ту же форму в C#?


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

Я буду очень признателен за любую помощь в решении моего вопроса, спасибо!

Что я уже пробовал:

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


namespace Second_ver
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            sphere.Visible = true;
            anillo_arriba.Visible = false;
            anillo_abajo.Visible = false;
            simulation.Visible = true;
            contador();
            KeyPreview = false;
        }
           
        //Keypress event
        private void Form1_KeyPress(object sender, KeyPressEventArgs e)
        {
            //Variable for the moviment of the pictures
            int up_down, left_right;
            left_right = sphere.Location.X;
            up_down = sphere.Location.Y;
            if (e.KeyChar == 119)
            {
                //Wich picture is able to see
                sphere.Visible = false;
                anillo_arriba.Visible = true;
                anillo_abajo.Visible = false;
                //Points that are going to move the picture
                anillo_abajo.Location = new Point(left_right, up_down - 5);
                anillo_arriba.Location = new Point(left_right, up_down - 5);
                sphere.Location = new Point(left_right, up_down - 5);
            }

            if (e.KeyChar == 115)
            {
                //Wich picture is able to see
                sphere.Visible = false;
                anillo_arriba.Visible = false;
                anillo_abajo.Visible = true;
                //Points that are going to move the picture
                anillo_abajo.Location = new Point(left_right, up_down + 5);
                anillo_arriba.Location = new Point(left_right, up_down + 5);
                sphere.Location = new Point(left_right, up_down + 5);
            }

            double function(double x)
            {
                return (Math.Sin(x)); //Función de gráfica
            }

            chart1.ChartAreas[0].AxisY.ScaleView.Zoom(-10, 10); //Escala en Y
            chart1.ChartAreas[0].AxisX.ScaleView.Zoom(-5, 5);//Escala en X
            chart1.ChartAreas[0].CursorX.IsUserEnabled = true;
            chart1.ChartAreas[0].CursorY.IsUserEnabled = true;
            chart1.ChartAreas[0].CursorX.IsUserSelectionEnabled = true;
            chart1.ChartAreas[0].CursorY.IsUserSelectionEnabled = true;
            chart1.ChartAreas[0].AxisX.ScaleView.Zoomable = true;

            for (int i = -10; i < 10; i++)
            {
               chart1.Series[0].Points.AddXY(i, function(i)); 
               chart1.Series[0].ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Point;
            }
        }
    }
}

Graeme_Grant

Точки останова-это мощный инструмент для понимания вашего собственного кода и кода других. Это называется "отладка". Вот видео, которое покажет вам, как отлаживать ваш код: Базовая отладка с помощью Visual Studio 2010-YouTube[^]

0 Ответов