abuhmamm Ответов: 1

Как я могу сделать рисование через любое событие ? как щелчок кнопки или функция


public partial class Form1 : Form
    {

        public int xcoordinate = 0;
        public int ycoordinate = 0;
        public int ESD_no = 2;
        public int IntertripESD = 0;
        public bool MenuClickdone = false;
        //private Bitmap MyImage;

        public event System.Windows.Forms.MouseEventHandler MouseClick;
        public void ShowMyimage(string WorkingDirectory, int xsize,int ysize)
                    {
           // WorkingDirectory = @"C:\PhotoXv";
            WorkingDirectory = @"C:\Users\abuhmammACER\source\repos\PhotoXv\xv_close.png";
            Bitmap xv_close = new Bitmap(WorkingDirectory);
            // xv_close = Image.FromFile(@"C:\PhotoXv\xv_close.png");
           // Image xv_open = Image.FromFile(WorkingDirectory + @"\xv_open.png");
           //// if (MyImage !=null )
           // {
            //    MyImage.Dispose();
           // }
            int sourceWidth = xv_close.Width;
            int sourceHeight = xv_close.Height;
            

            //Bitmap bmPhoto = new Bitmap(sourceWidth,sourceHeight);
            Graphics GraphicPhoto = Graphics.FromImage(xv_close);

            GraphicPhoto.DrawImage(xv_close, xsize, ysize,sourceWidth,sourceHeight);
            //GraphicPhoto.Save("output.png", ImageFormat.Png);
           // GraphicPhoto.Save( ImageFormat.Png);
        }


private void button1_Click(object sender, EventArgs e)
        {
            //this.Paint += new PaintEventHandler(Image_fun);
            
            ShowMyimage(@"C:\Users\abuhmammACER\source\repos\PhotoXv\xv_close.png", 40, 50);
           // f1_paint(object sender, PaintEventArgs e);
        }




во время нажатия кнопки я хочу вызвать любую функцию, такую как ShowMYimage (), но когда я вызываю nthing, происходит также, если я редактирую значение, там нет действия, но если я вызываю другую форму
form1 f=новая форма();
Ф.показать();
форма Аппер
мольбы любой души за это
summry я хочу нарисовать изображение через любое событие например щелчок меню но я не могу этого сделать

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

i want draw image  through any event like menu click but I am not able to do that

1 Ответов

Рейтинг:
2

OriginalGriff

Во - первых, это код C#, а не C++ - это очень разные языки, которые имеют некоторый общий синтаксис. Важно правильно помечать вопросы, иначе вы значительно сократите число потенциальных ответчиков.

Вы можете сделать это непосредственно в обработчике нажатия кнопки, но ... это плохая идея. Я говорю это потому, что такие рисунки не являются постоянными: как только что - то еще требует, чтобы ваша форма была перерисована, ваши новые изменения будут отброшены-и это включает в себя изменение размера вашей формы, ее минимизацию, максимизацию или даже другое приложение, перемещающееся по ее поверхности.
Для этого вы получаете графический контекст из системы, рисуете на нем, а затем избавляетесь от контекста.
Как создать графические объекты для рисования - Windows Forms | Microsoft Docs[^] показывает, как это делается.

То, что вы должны делать, - это рисовать в обработчике событий Paint и принудительно перерисовывать, делая недействительным элемент управления / форму, на которой вы хотите рисовать: Контроль.Метод Invalidate (System.Окна.Формы) | Microsoft Docs[^]