具有图像和不可见文本属性的按钮

时间:2014-03-11 09:46:26

标签: c# .net winforms button

我是否可以同时创建一个同时具有.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";
    }
}

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

1 个答案:

答案 0 :(得分:2)

不要使用按钮的.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属性设置为""(空白或空白)

即可