2011年02月03日

NumericUpDown のキャレットを消す

マップエディタを作っていて、マスの倍率を変更するためにNumericUpDown を使うことにした。キャレットがチカチカしてうっとうしいので、キャレットを消す方法を検索していろいろ試してみたが、なかなかうまくいかない。HideCaret を使う方法がいくつか出てくるけど、なぜか消えなかった。そこで、DestroyCaret を使うと消えてくれた。環境によるのだろうか。

public partial class NumericUpDownEx : NumericUpDown
{
    [DllImport("user32.dll", SetLastError = true)]
    private static extern bool DestroyCaret();

    [DefaultValue(true)]
    [Category("動作")]
    public bool CaretVisible { get; set; }

    public NumericUpDownEx()
    {
        InitializeComponent();
    }

    protected override void OnGotFocus(EventArgs e)
    {       
        if (!this.CaretVisible)
        {
            DestroyCaret();
        }
        base.OnGotFocus(e);
    }
}

ここではNumericUpDown を継承しているけど、TextBox 等でもできると思う。

posted by Takenoko at 20:21| Comment(0) | TrackBack(0) | programming | このブログの読者になる | 更新情報をチェックする

GearHead メモ2

<小核ミサイル>
Gigas の小核ミサイルの弾倉を 整地ミサイルに装填すると、なぜか弾数が増える。Petrach のミサイルだと4発になり、売値が800万くらいになるので、Gigas と Petrach を買って弾を詰め替えて売ると 1000万程度儲かる。射程が大幅に減るので、武器としては使いづらくなる。

ラベル:Roguelike GearHead
posted by Takenoko at 20:07| Comment(0) | TrackBack(0) | game | このブログの読者になる | 更新情報をチェックする

広告


この広告は60日以上更新がないブログに表示がされております。

以下のいずれかの方法で非表示にすることが可能です。

・記事の投稿、編集をおこなう
・マイブログの【設定】 > 【広告設定】 より、「60日間更新が無い場合」 の 「広告を表示しない」にチェックを入れて保存する。