C#中能不能,已经定义一个button控件,如何在窗体中隐藏它(本人新手)

时间:2022-03-22 00:31:12
在窗体中定义了一个button控件,用来实现当按下enter后触发一个事件,可是如果留在窗体中影响美观,如何能让他在程序运行时候不显示,还能实现上面的功能呢?
如果不能的话,能不能用其他不影响美观的控件来实现上面的功能,大虾们帮帮忙 
小弟不胜感谢!!!

23 个解决方案

#1


button.Visible=false;

#2


功能肯定需要某些事件触发
button也是通过点击事件触发的

#3


bool bt=false;
if (bt==true)
button1.Hide();

Hide()这个方法可以隐藏控件的

#4


LZ头像的漫画  好熟悉  想不起来什么名字了

#5


调整它的位置到界面外

#6


我建议你注册Form的键盘事件,判断当是Enter键时调用Button的键盘事件,或者直接调用代码.

#7


引用 1 楼 foxdave 的回复:
C# code
button.Visible=false;


把它隐藏后,发现按enter就没有那个功能了呢?按下enter无法触发事件,可是不隐藏的时候就可以..

#8


如果你吧把事件放在but单击事件里,你把but给隐藏了,你还能点击吗?不点击怎么执行呢?

#9


引用 8 楼 hao448609471 的回复:
如果你吧把事件放在but单击事件里,你把but给隐藏了,你还能点击吗?不点击怎么执行呢?

看来是没得方法了--!

#10


你想在什么时候调用  就在相应的位置调用方法就可以了啊~   F10调试一下

#11


直接让窗体接收 Enter就行了,根本不需要用Button呀!

using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
using System.Drawing.Drawing2D;

public class Form1 : System.Windows.Forms.Form{
   public Form1() {
      InitializeComponent();
   }
   private void InitializeComponent() {
      this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
      this.ClientSize = new System.Drawing.Size(292, 273);
      this.Name = "Form1";
      this.Text = "Form1";
      this.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.Form1_KeyPress);
   }

   static void Main() {
      Application.Run(new Form1());
   }

   private void Form1_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e) {
      Console.WriteLine("Key Press");
   }

#12


this.button1.visible=false;

#13


直接将buttonclick事件的代码移植到FormKeypress里面

#14


引用楼主 lx4174 的回复:
在窗体中定义了一个button控件,用来实现当按下enter后触发一个事件,可是如果留在窗体中影响美观,如何能让他在程序运行时候不显示,还能实现上面的功能呢?
如果不能的话,能不能用其他不影响美观的控件来实现上面的功能,大虾们帮帮忙 
小弟不胜感谢!!!

不明白楼主意思 如果只是想隐藏它的话可以这样:
1.找一个label控件 把图贴上 就是相当于给图打了个补丁 楼主明白我意思吧
2.给label控件写事件 当鼠标单击的时候mouse_click就可以做到功能
3.截获回车消息 然后再写功能。

#15


楼主是想让这个按钮在运行时不被用户看见并且保留按下ENTER键能够触发按钮对应的事件吗
“不显示”就可以被更好的描述“不被看见”代替
让它的前景色和背景色都透明不就OK啦
例如:

            this.Button1.BackColor = System.Drawing.Color.Transparent;
            this.Button1.ForeColor = System.Drawing.Color.Transparent;

#16


哦,不好意思
Button的BackColor属性设置为Transparent是不起作用的
可以用Lable控件代替

#17


button.Visible=false;
就OK!

#18


设置为透明后不可视就行了

#19


明白你的意思,那个按钮看上去很不爽的,那就用"KeyDown"事件,如果是按下“Enter”键后起作用,那就
这样写:
    
 

       //注:是在你选择的控件的KeyDown事件中写;
         private void 控件名_KeyDown(object sender, KeyEventArgs e)
        {
            if(e.KeyCode==Keys.Enter)

                 {

                    //这里面写你要写的内容;

            }


        }

#20


这么多,来晚了,路过,顶下...............

#21


我觉得你还是用linklabel吧,让它的text为空格,就基本看不见啦,还可以点,呵呵

#22


引用 19 楼 appleyk 的回复:
明白你的意思,那个按钮看上去很不爽的,那就用"KeyDown"事件,如果是按下“Enter”键后起作用,那就
这样写:
  
 
  
  //注:是在你选择的控件的KeyDown事件中写;
  private void 控件名_KeyDown(object sender, KeyEventArgs e)
  {
  if(e.KeyCode==Keys.Ente……

这个方法貌似不管用呀

#23


visible= false 啊。。

#1


button.Visible=false;

#2


功能肯定需要某些事件触发
button也是通过点击事件触发的

#3


bool bt=false;
if (bt==true)
button1.Hide();

Hide()这个方法可以隐藏控件的

#4


LZ头像的漫画  好熟悉  想不起来什么名字了

#5


调整它的位置到界面外

#6


我建议你注册Form的键盘事件,判断当是Enter键时调用Button的键盘事件,或者直接调用代码.

#7


引用 1 楼 foxdave 的回复:
C# code
button.Visible=false;


把它隐藏后,发现按enter就没有那个功能了呢?按下enter无法触发事件,可是不隐藏的时候就可以..

#8


如果你吧把事件放在but单击事件里,你把but给隐藏了,你还能点击吗?不点击怎么执行呢?

#9


引用 8 楼 hao448609471 的回复:
如果你吧把事件放在but单击事件里,你把but给隐藏了,你还能点击吗?不点击怎么执行呢?

看来是没得方法了--!

#10


你想在什么时候调用  就在相应的位置调用方法就可以了啊~   F10调试一下

#11


直接让窗体接收 Enter就行了,根本不需要用Button呀!

using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
using System.Drawing.Drawing2D;

public class Form1 : System.Windows.Forms.Form{
   public Form1() {
      InitializeComponent();
   }
   private void InitializeComponent() {
      this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
      this.ClientSize = new System.Drawing.Size(292, 273);
      this.Name = "Form1";
      this.Text = "Form1";
      this.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.Form1_KeyPress);
   }

   static void Main() {
      Application.Run(new Form1());
   }

   private void Form1_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e) {
      Console.WriteLine("Key Press");
   }

#12


this.button1.visible=false;

#13


直接将buttonclick事件的代码移植到FormKeypress里面

#14


引用楼主 lx4174 的回复:
在窗体中定义了一个button控件,用来实现当按下enter后触发一个事件,可是如果留在窗体中影响美观,如何能让他在程序运行时候不显示,还能实现上面的功能呢?
如果不能的话,能不能用其他不影响美观的控件来实现上面的功能,大虾们帮帮忙 
小弟不胜感谢!!!

不明白楼主意思 如果只是想隐藏它的话可以这样:
1.找一个label控件 把图贴上 就是相当于给图打了个补丁 楼主明白我意思吧
2.给label控件写事件 当鼠标单击的时候mouse_click就可以做到功能
3.截获回车消息 然后再写功能。

#15


楼主是想让这个按钮在运行时不被用户看见并且保留按下ENTER键能够触发按钮对应的事件吗
“不显示”就可以被更好的描述“不被看见”代替
让它的前景色和背景色都透明不就OK啦
例如:

            this.Button1.BackColor = System.Drawing.Color.Transparent;
            this.Button1.ForeColor = System.Drawing.Color.Transparent;

#16


哦,不好意思
Button的BackColor属性设置为Transparent是不起作用的
可以用Lable控件代替

#17


button.Visible=false;
就OK!

#18


设置为透明后不可视就行了

#19


明白你的意思,那个按钮看上去很不爽的,那就用"KeyDown"事件,如果是按下“Enter”键后起作用,那就
这样写:
    
 

       //注:是在你选择的控件的KeyDown事件中写;
         private void 控件名_KeyDown(object sender, KeyEventArgs e)
        {
            if(e.KeyCode==Keys.Enter)

                 {

                    //这里面写你要写的内容;

            }


        }

#20


这么多,来晚了,路过,顶下...............

#21


我觉得你还是用linklabel吧,让它的text为空格,就基本看不见啦,还可以点,呵呵

#22


引用 19 楼 appleyk 的回复:
明白你的意思,那个按钮看上去很不爽的,那就用"KeyDown"事件,如果是按下“Enter”键后起作用,那就
这样写:
  
 
  
  //注:是在你选择的控件的KeyDown事件中写;
  private void 控件名_KeyDown(object sender, KeyEventArgs e)
  {
  if(e.KeyCode==Keys.Ente……

这个方法貌似不管用呀

#23


visible= false 啊。。