Почему дочерние формы показывают кнопки «Развернуть» и «Свернуть», несмотря на тот факт, что свойство FormBorderStyle равно none? - PullRequest
0 голосов
/ 28 февраля 2019

Я работаю с Visual C # и Windows Forms.

У меня есть родительская форма, которая вызывает дочерние формы, дочерние формы имеют свойство FormBorderStyle в none, свернуть поле и maximizeBox в false и WindowsState вРазвернуто, но при запуске программы появляются кнопки «Развернуть» и «Свернуть», и они работают, несмотря на то, что они отключены.

Посмотрите на приложенное изображение.

enter image description here

Код:

  this.WindowState = FormWindowState.Maximized;
  this.Dock = DockStyle.Fill;
  InicioSesion inicioSesionForm = new InicioSesion();
  inicioSesionForm.MdiParent = this;
  inicioSesionForm.Dock = DockStyle.Fill;
  inicioSesionForm.ShowInTaskbar = false;
  inicioSesionForm.MaximizeBox = false;
  inicioSesionForm.MinimizeBox = false;
  inicioSesionForm.Show();

Есть ли способ решить эту проблему?

Любые комментарии или предложения приветствуются.

ОБНОВЛЕНИЕ:

код из формы IncioSesion:

using allSale.Clases;
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 allSale
{
    public partial class InicioSesion : Form
    {
        public InicioSesion()
        {
            InitializeComponent();
        }

        private void linkLabelRegistrarteLogin_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
        {
            Registrarse registrarse = new Registrarse();
            registrarse.MdiParent = (FormularioPrincipal) this.ParentForm;
            registrarse.Dock = DockStyle.Fill;
            registrarse.WindowState = FormWindowState.Maximized;
            registrarse.Show();
            this.Close();
        }

        private void btnEntrarLogin_Click(object sender, EventArgs e)
        {
            if (textCorreoLogin.Text.Length == 0)
            {
                MessageBox.Show("¡Debe ingresar un correo electrónico!", "allSale", MessageBoxButtons.OK, MessageBoxIcon.Stop);
                return;
            }
            else if (textClaveLogin.Text.Length == 0)
            {
                MessageBox.Show("¡Debe ingresar su contraseña de usuario!", "allSale", MessageBoxButtons.OK, MessageBoxIcon.Stop);
                return;
            }
            else
            {
                Validador validador = new Validador();
                if (validador.correoElectronicoValido(textCorreoLogin.Text))
                {
                    BaseDeDatos baseDeDatos = new BaseDeDatos();
                    String correoUsuario = baseDeDatos.obtenerCorreoUsuario();
                    if (!String.IsNullOrEmpty(correoUsuario))
                    {
                        String claveUsuario = baseDeDatos.obtenerClaveUsuario();

                        if (correoUsuario.Equals(textCorreoLogin.Text) && claveUsuario.Equals(textClaveLogin.Text))
                        {

                            Globals.idEmpresa = baseDeDatos.obtenerIDEmpresaPorRUC(baseDeDatos.obtenerRUCUsuarioPorCorreo(correoUsuario));
                            Globals.idUsuario = baseDeDatos.obtenerIDUsuarioPorCorreo(correoUsuario);

                            Vender formularioVender = new Vender();
                            formularioVender.MdiParent = (FormularioPrincipal)this.ParentForm;
                            formularioVender.Dock = DockStyle.Fill;
                            formularioVender.WindowState = FormWindowState.Maximized;
                            formularioVender.Show();

                            FormularioPrincipal parent = (FormularioPrincipal)this.ParentForm;
                            parent.visibleMenuGeneral(true);

                            //FormularioPrincipal formularioPrincipal = new FormularioPrincipal();
                            //formularioPrincipal.visibleMenuGeneral(true);
                            this.Close();
                        }
                        else
                        {
                            if (correoUsuario.Equals(textCorreoLogin.Text))
                            {
                                MessageBox.Show("¡La clave ingresada es incorrecta!", "allSale", MessageBoxButtons.OK, MessageBoxIcon.Stop);
                            }
                            else
                            {
                                MessageBox.Show("¡No existe un usuario con el correo ingresado!", "allSale", MessageBoxButtons.OK, MessageBoxIcon.Stop);
                            }
                        }

                    }
                    else
                    {
                        MessageBox.Show("¡No existe aún usuarios almacenados!", "allSale", MessageBoxButtons.OK, MessageBoxIcon.Stop); 
                    }
                }
                else {MessageBox.Show("¡Debe ingresar un correo electrónio válido!", "allSale", MessageBoxButtons.OK, MessageBoxIcon.Stop);}


            }
        }
        public static class Globals
        {
            public static int idEmpresa = 0;
            public static int idUsuario = 0;
            public static List<ProductosVender> listaProductosParaVenderX = new List<ProductosVender>();
           
        }

        private void InicioSesion_FormClosing(object sender, FormClosingEventArgs e)
        {
            e.Cancel = true;
        }
    }
}

И видео о том, что происходит

Обновление 2 вопроса: удаление DockStyle.Fill;

enter image description here

Решение:

Как удалить значок «Развернуть, свернуть и закрыть» в MDI Menustrip

1 Ответ

0 голосов
/ 01 марта 2019

Я думаю, что если вы установите максимальное значение состояния окна дочерней формы, оно будет отображать эти кнопки независимо от стиля окна. Это похоже на поведение MDI parent-child.

Вы можете попробовать вручную установить расположение и размер окна дочерней формы..Я предполагаю, что вы не будете перемещать дочернюю форму, так как вы установили стиль границы формы на none.

Другая вещь, которую вы можете попробовать, это добавить Panel и заполнить ею родительскую форму. А затем добавить развернутую дочернюю форму внутрьэта панель.

...