【问题标题】:Button with image and not visible text properties带有图像和不可见文本属性的按钮
【发布时间】:2014-03-11 09:46:25
【问题描述】:

我可以同时创建一个具有 .Image 和 .Text 属性的按钮吗?这样,该文本在表单上不可见,并且只是为了识别此时应该执行的按钮而创建的?

使用 TextAlign 和 TextImageRelation 属性没有帮助。文本始终可见,只是位置发生变化。

private System.Windows.Forms.Button bRenameCourse;

this.bRenameCourse.BackColor = System.Drawing.SystemColors.ButtonFace;

this.bRenameCourse.Image = ((System.Drawing.Image)(resources.GetObject("bRenameCourse.Image")));
this.bRenameCourse.Location = new System.Drawing.Point(966, 6);
this.bRenameCourse.Name = "bRenameCourse";

我希望此文本“重命名”在按钮上不可见

this.bRenameCourse.Text = "Rename";
this.bRenameCourse.Size = new System.Drawing.Size(64, 60);
this.bRenameCourse.TabIndex = 10;
this.bRenameCourse.UseVisualStyleBackColor = false;
this.bRenameCourse.Click += new System.EventHandler(this.bRenameCourse_Click);

这就是我希望它起作用的原因:

private void bRenameCourse_Click(object sender, EventArgs e)
{
    if (bRenameCourse.Text.Equals("Rename"))
    {
        //DO SMTHNG
        bRenameCourse.Text = "OK";
    }
    else if (bRenameCourse.Text.Equals("OK"))
    {
        //DO SMTHNG
        bRenameCourse.Text = "Rename";
    }
}

我可以使用一些标志来避免这种情况,但我想知道一般情况下是否可行。

【问题讨论】:

  • 一种可能的解决方案是使用 .Image.Tag 。但我认为这不是一个好习惯..

标签: c# .net winforms button


【解决方案1】:

不要使用按钮的.Text属性来存储信息。可以使用.Tag属性

  this.bRenameCourse.Tag  = "Rename";

在事件中

private void bRenameCourse_Click(object sender, EventArgs e)
{
    if (bRenameCourse.Tag.Equals("Rename"))
    {
        //DO SMTHNG
        bRenameCourse.Tag = "OK";
    }
    else if (bRenameCourse.Tag.Equals("OK"))
    {
        //DO SMTHNG
        bRenameCourse.Tag = "Rename";
    }
}

只需将.Text 属性设置为""(空白或空)

【讨论】:

  • 太棒了!我找到了 .Image.Tag 属性,但没有看到按钮的标签 :) 谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-09-03
  • 2011-10-11
  • 2013-07-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多