C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[6]: ComboBoxでフォーカスのあるIDを取得するには?


(過去ログ 15 を表示中)

[トピック内 7 記事 (1 - 7 表示)]  << 0 >>

■5145 / inTopicNo.1)  ComboBoxでフォーカスのあるIDを取得するには?
  
□投稿者/ とけい (1回)-(2007/07/05(Thu) 16:29:36)

分類:[C# (Windows)] 

お世話になります。
ComboBoxで疑問点がある為、質問させていただきます。

ComboBoxで選択したIndexを取得するには、「SelectedIndexChanged」で
Indexを取得することが出来ますが、
選択しないで各項目にフォーカスがある時点(マウスカーソルがあり青く着色されている部分)でIndexIDを
取得する方法は無いでしょうか?

すみませんが、教えてください。
宜しくお願いします。
引用返信 編集キー/
■5156 / inTopicNo.2)  Re[1]: ComboBoxでフォーカスのあるIDを取得するには?
□投稿者/ keichan (6回)-(2007/07/05(Thu) 17:36:06)
> ComboBoxで選択したIndexを取得するには、「SelectedIndexChanged」で
> Indexを取得することが出来ますが、
> 選択しないで各項目にフォーカスがある時点(マウスカーソルがあり青く着色されている部分)でIndexIDを
> 取得する方法は無いでしょうか?
ComboBox クラスのインスタンスが comboBox1 だとしたら
任意のタイミングで comboBox1.SelectedIndex プロパティで取れませんか?
フォーカスになった瞬間に欲しいのであれば comboBox1 のEnterイベントで処理すればいいです。
引用返信 編集キー/
■5159 / inTopicNo.3)  Re[2]: ComboBoxでフォーカスのあるIDを取得するには?
□投稿者/ とけい (3回)-(2007/07/05(Thu) 17:58:06)
keichanさん素早い返信有難うございます。

Enterイベントを試してみましたが、一回目にComboBoxを選択した際に
 しかIndexが取得できませんでした。

やりたい事として、
 ComboBoxを選択する前にフォーカスが存在するIndexに応じた、説明を別の箇所で
 表示しようと考えています。

例えばComboBoxがあったとして
 [ComboBox1   ]
 [ 0    ]
 [ 1    ] 例えばこの位置にカーソルがあった場合色が青くなりますよね?
 [ 2    ] この時点でIndexIDを取得したいのです。
 [ 3    ]
 
この場合のIndexIDを取得する方法は無いものでしょうか?
お手数おかけしますが、ご存知であれば教えてください。


No5156 (keichan さん) に返信
>>ComboBoxで選択したIndexを取得するには、「SelectedIndexChanged」で
>>Indexを取得することが出来ますが、
>>選択しないで各項目にフォーカスがある時点(マウスカーソルがあり青く着色されている部分)でIndexIDを
>>取得する方法は無いでしょうか?
> ComboBox クラスのインスタンスが comboBox1 だとしたら
> 任意のタイミングで comboBox1.SelectedIndex プロパティで取れませんか?
> フォーカスになった瞬間に欲しいのであれば comboBox1 のEnterイベントで処理すればいいです。
引用返信 編集キー/
■5161 / inTopicNo.4)  Re[3]: ComboBoxでフォーカスのあるIDを取得するには?
□投稿者/ 魔界の仮面弁士 (328回)-(2007/07/05(Thu) 18:55:43)
2007/07/05(Thu) 19:03:57 編集(投稿者)
No5159 (とけい さん) に返信
> この場合のIndexIDを取得する方法は無いものでしょうか?

とりあえず、番号をラベルに表示させてみました。


// あまりスマートな方法では無いなぁ。(T_T)
private void Form1_Load(object sender, EventArgs e)
{
    comboBox1.DrawMode = DrawMode.OwnerDrawFixed;
    comboBox1.DrawItem += delegate(object combo, DrawItemEventArgs args)
    {
        if ((args.State & DrawItemState.Selected) == DrawItemState.Selected)
        {
            label1.Text = args.Index.ToString();
        }
        args.DrawBackground();
        string itemText = String.Empty;
        if (args.Index != -1)
        {
            ComboBox comboBox = (ComboBox)combo;
            itemText = comboBox.GetItemText(comboBox.Items[args.Index]);
        }
        using (Brush brush = new SolidBrush(args.ForeColor))
        {
            args.Graphics.DrawString(itemText, args.Font, brush, args.Bounds);
        }
    };
}

引用返信 編集キー/
■5181 / inTopicNo.5)  Re[4]: ComboBoxでフォーカスのあるIDを取得するには?
□投稿者/ とけい (4回)-(2007/07/06(Fri) 10:36:15)
魔界の仮面弁士さん偏し有難うございます。
お蔭様で期待していた通りに動作しました。
ありがとうございます。

一点追加で確認させて頂きたいのですが、
>「あまりスマートな方法では無いなぁ。(T_T)」と仰っておりますが
他に実現する方法はあるのでしょうか?
もし宜しければ、キーワード等でも構いませんので勉強のために
教えてください。

宜しくお願いします。


No5161 (魔界の仮面弁士 さん) に返信
> 2007/07/05(Thu) 19:03:57 編集(投稿者)
>
> ■No5159 (とけい さん) に返信
>>この場合のIndexIDを取得する方法は無いものでしょうか?
>
> とりあえず、番号をラベルに表示させてみました。
>
>
> // あまりスマートな方法では無いなぁ。(T_T)
> private void Form1_Load(object sender, EventArgs e)
> {
> comboBox1.DrawMode = DrawMode.OwnerDrawFixed;
> comboBox1.DrawItem += delegate(object combo, DrawItemEventArgs args)
> {
> if ((args.State & DrawItemState.Selected) == DrawItemState.Selected)
> {
> label1.Text = args.Index.ToString();
> }
> args.DrawBackground();
> string itemText = String.Empty;
> if (args.Index != -1)
> {
> ComboBox comboBox = (ComboBox)combo;
> itemText = comboBox.GetItemText(comboBox.Items[args.Index]);
> }
> using (Brush brush = new SolidBrush(args.ForeColor))
> {
> args.Graphics.DrawString(itemText, args.Font, brush, args.Bounds);
> }
> };
> }
引用返信 編集キー/
■5191 / inTopicNo.6)  Re[5]: ComboBoxでフォーカスのあるIDを取得するには?
□投稿者/ 魔界の仮面弁士 (330回)-(2007/07/06(Fri) 13:04:54)
No5181 (とけい さん) に返信
> >「あまりスマートな方法では無いなぁ。(T_T)」と仰っておりますが
Index を取得するだけのために、いちいち、内容を自己描画しなければいけないのが面倒だなぁ、と。(^^;

> 他に実現する方法はあるのでしょうか?
思い当たりません。
引用返信 編集キー/
■5197 / inTopicNo.7)  Re[6]: ComboBoxでフォーカスのあるIDを取得するには?
□投稿者/ とけい (5回)-(2007/07/06(Fri) 13:55:33)
魔界の仮面弁士 さん回答有難うございます。

特に、今回の方法でも問題が無いと思いますので解決とさせて頂きます。
アドバイス有難うございました。


No5191 (魔界の仮面弁士 さん) に返信
> ■No5181 (とけい さん) に返信
>>>「あまりスマートな方法では無いなぁ。(T_T)」と仰っておりますが
> Index を取得するだけのために、いちいち、内容を自己描画しなければいけないのが面倒だなぁ、と。(^^;
>
>>他に実現する方法はあるのでしょうか?
> 思い当たりません。
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -