如何制作图像按钮

时间:2011-09-12 23:30:28

标签: c# winforms

我想知道我怎么能这样做。我知道我可以使用按钮组件,但当我给它一个图像时它周围有一些灰色的东西。使用图像按钮,我如何显示悬停效果的另一个图像

5 个答案:

答案 0 :(得分:21)

您想创建一个没有边框的按钮,但当用户用鼠标悬停在图像上时会显示不同的图像?这是你如何做到的:

  1. 将一个ImageList控件添加到表单中,添加两个图像,一个用于按钮的正常外观,另一个用于鼠标悬停时。

  2. 添加按钮并设置以下属性:
    FlatStyle =平 您的表单背景颜色FlatAppearance.BorderColor(可能MouseOverBackColor& MouseDownBackColorImageList =您添加到表单的ImageList
    ImageIndex到普通图片的索引值

  3. 为按钮编码MouseHover和MouseLeave事件,如下所示:

    private void button1_MouseHover(object sender, EventArgs e) {
        // ImageList index value for the hover image.
        button1.ImageIndex = 1;
    }
    
    private void button1_MouseLeave(object sender, EventArgs e) {
        // ImageList index value for the normal image.
        button1.ImageIndex = 0;
    }
    

    我相信这会给你带来你正在寻找的视觉效果。

答案 1 :(得分:3)

小摘要(Border,MouseDownBackColor,MouseOverBackColor)

<强> FlatApperance

BorderColor =黑色或任何你想要的东西 BorderSize =可以设置为0
MouseDownBackColor =透明
MouseOverBackColor =透明

Text =无

对于MouseDown

private void button1_MouseDown(object sender, MouseEventArgs e) { // ImageList index value for the mouse down image. button1.ImageIndex = 2; }

答案 2 :(得分:1)

您可以为按钮指定BackgroundImage属性。您还可以使用OnMouseEnter和OnMouseExit事件根据您的请求更改背景。

请参阅BackgroundImage OnMouseEnter OnMouseLeave

答案 3 :(得分:0)

与Web窗体不同,WinForm没有ImageButton。可以将图像添加到普通按钮,但在某些情况下看起来不太好。您可能必须使用第三方按钮控件,如WinForm ImageButton或创建自己的CustomControl。

答案 4 :(得分:0)

我还需要一个图像按钮,但我想要一个像ToolstripMenuButton。 悬停时使用正确的边框和颜色。 所以我做了一个自定义控件来做到这一点:

<div class="backgroundOverlay cShow" ng-show="isShownEdit">
    <div class="dropDown positionPopUp inpuBlock" id="add">
        <div class="inputBlock">
            <h1 class="popupTitle">{{titlePopup}}</h1>
            <div>
                <div class="cClearFloat cInputSpace">
                    <input placeholder="Name" ng-model="currentPassword.Name">
                </div>
                <div class="cClearFloat cInputSpace">
                    <input placeholder="Passwort" ng-model="currentPassword.Passwort">
                </div>
                <div class="cClearFloat cInputSpace">
                    <input placeholder="Beschreibung" ng-model="currentPassword.Beschreibung">
                </div>
                <div class="cClearFloat cInputSpace">
                    <div class="divSmall">
                        <label class="inputDropdownPlaceholder">Kategorien</label>
                        <div class="divOptions" ng-repeat="item in categories">
                            <label class="labelDropDown"><input type="checkbox" class="inputDropDown" ng-model="item.isChecked" ng-checked="checkedCategory(item)" ng-init="item.isChecked = checkedCategory(item)" ng-change="changedCategory(item)">{{item.Label}}</label><br>
                        </div>
                    </div>
                    <div class="cClearFloat cButtons">
                        <button class="cButtonSpeichern" ng-click="showAlertPassword()">Speichern</button>
                        <button class="cButtonAbbrechen" ng-click="isShownEdit= false">Abbrechen</button>
                    </div>
                </div>
            </div>
        </div>
    </div>
</div>