首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >尽管FormBorderStyle属性等于none,为什么子窗体仍显示最大化和最小化按钮?

尽管FormBorderStyle属性等于none,为什么子窗体仍显示最大化和最小化按钮?
EN

Stack Overflow用户
提问于 2019-03-01 04:01:13
回答 1查看 344关注 0票数 0

我正在使用可视化的C#和Windows Forms。

我有一个父窗体,名为Form子窗体,窗体子窗体的FormBorderStyle属性为none,minimize box和maximizeBox属性为false,WindowsState属性为Maximized,但当程序运行时,最大化和最小化按钮出现,尽管被禁用,但它们仍然有效。

请看附件中的图像。

代码:

代码语言:javascript
复制
  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表单中的代码:

代码语言:javascript
复制
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;
        }
    }
}

And a video of what happens

问题的更新2:删除DockStyle.Fill;

解决方案:

How can i Remove Maximize,Minimize and Close icon in MDI Menustrip

EN

回答 1

Stack Overflow用户

发布于 2019-03-01 05:45:50

我认为,如果您设置子窗体的窗口状态为最大化,它将显示这些按钮,而不管窗口style.Its如何,就像一些MDI父子行为一样。

您可以尝试手动设置子窗体窗口的位置和大小。我假定您不会移动子窗体,因为您已将窗体边框样式设置为“无”。

您可以尝试的另一件事是添加一个面板并使用it.And填充父窗体,然后在该面板中添加最大化的子窗体。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54933373

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档