我正在使用可视化的C#和Windows Forms。
我有一个父窗体,名为Form子窗体,窗体子窗体的FormBorderStyle属性为none,minimize box和maximizeBox属性为false,WindowsState属性为Maximized,但当程序运行时,最大化和最小化按钮出现,尽管被禁用,但它们仍然有效。
请看附件中的图像。
代码:
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;
解决方案:
How can i Remove Maximize,Minimize and Close icon in MDI Menustrip
发布于 2019-03-01 05:45:50
我认为,如果您设置子窗体的窗口状态为最大化,它将显示这些按钮,而不管窗口style.Its如何,就像一些MDI父子行为一样。
您可以尝试手动设置子窗体窗口的位置和大小。我假定您不会移动子窗体,因为您已将窗体边框样式设置为“无”。
您可以尝试的另一件事是添加一个面板并使用it.And填充父窗体,然后在该面板中添加最大化的子窗体。
https://stackoverflow.com/questions/54933373
复制相似问题