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

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

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

Re[7]: プログレスバー クリックした位置を取得


(過去ログ 66 を表示中)

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

■38400 / inTopicNo.1)  プログレスバー クリックした位置を取得
  
□投稿者/ hs (89回)-(2009/07/13(Mon) 17:23:40)

分類:[VB.NET/VB2005 以降] 

2009/07/13(Mon) 17:27:17 編集(投稿者)
2009/07/13(Mon) 17:27:05 編集(投稿者)
2009/07/13(Mon) 17:26:02 編集(投稿者)
2009/07/13(Mon) 17:25:48 編集(投稿者)

VS2008-VBです。

いつもお世話になっております。

現在Sliderとプログレスバーの使い方を勉強しております。
これらのコントロールの仕様として標準なのかもしれませんが、もし下記のようなことを実現する方法があればご教授ください。


・両コントロールのMaximumプロパテを100と設定したとき。
・各コントロールのValueが現在50の位置とする。
・○ = Value = 80 の部分をクリックした場所の値を取得したい。
・クリックした場所にPosition及びValueを移動させたい。 
                                       (ここをクリック)
■■■■■■■■■■■■■■■■■■■■■■----------------------------○-----------------
0                     50                   80        100

クリック後
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■-----------------
0                     50                   80        100

みなさんよろしくお願いします。
引用返信 編集キー/
■38401 / inTopicNo.2)  Re[1]: プログレスバー クリックした位置を取得
□投稿者/ hs (90回)-(2009/07/13(Mon) 17:28:05)
                                         (ここをクリック)
> ■■■■■■■■■■■■■■■■■■■■■■----------------------------○-----------------
> 0                       50                   80        100
>
> クリック後
> ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■-----------------
> 0                       50                   80        100

引用返信 編集キー/
■38402 / inTopicNo.3)  Re[2]: プログレスバー クリックした位置を取得
□投稿者/ hs (91回)-(2009/07/13(Mon) 17:28:51)
No38401 (hs さん) に返信
>                                                  (ここをクリック)
>>■■■■■■■■■■■■■■■■■■■■■■----------------------------○-----------------
>>0                       50                         80        100
>>
>>クリック後
>>■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■-----------------
>>0                       50                         80        100
>
引用返信 編集キー/
■38403 / inTopicNo.4)  Re[3]: プログレスバー クリックした位置を取得
□投稿者/ hs (92回)-(2009/07/13(Mon) 17:30:22)
何度も申し訳ありません。
上2つは訂正ミスです。

(ここをクリック)
--------○--------
     80
引用返信 編集キー/
■38404 / inTopicNo.5)  Re[4]: プログレスバー クリックした位置を取得
□投稿者/ .SHO (967回)-(2009/07/13(Mon) 17:38:51)
No38403 (hs さん) に返信

ProgressBar.value = Slider.value;
引用返信 編集キー/
■38405 / inTopicNo.6)  Re[4]: プログレスバー クリックした位置を取得
□投稿者/ やじゅ (1096回)-(2009/07/13(Mon) 17:39:38)
やじゅ さんの Web サイト
2009/07/16(Thu) 02:31:57 編集(投稿者)
No38403 (hs さん) に返信

Private Sub ProgressBar1_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles ProgressBar1.MouseDown
   'Maximumプロパティが100なので、単純にマウスを押した位置をプログレスバーの幅で割ればいい。
   ProgressBar1.Value = CInt((e.X / ProgressBar1.Width) * 100)
End Sub

引用返信 編集キー/
■38406 / inTopicNo.7)  Re[5]: プログレスバー クリックした位置を取得
□投稿者/ hs (93回)-(2009/07/13(Mon) 17:54:09)
No38404 (.SHO さん) に返信
>ProgressBar.value = Slider.value;
申し訳ありません。伝え方が悪かったようです。
プログレスバーとスライダーそれぞれ個別にクリックした位置にValueをセットしなおしたいということでしたm_ _m



No38405(やじゅさん)に返信
>Private Sub ProgressBar1_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles ProgressBar1.MouseDown
> 'Maximumプロパテを100なので、単純にマウスを押した位置をプログレスバーの幅で割ればいい。
> ProgressBar1.Value = CInt((e.X / ProgressBar1.Width) * 100)
>End Sub

上記のコードをコピペしたのですが、'X(はSystem.Windows.Forms.MouseEventArgsのメンバではありませんとエラーになってしまします;






引用返信 編集キー/
■38407 / inTopicNo.8)  Re[6]: プログレスバー クリックした位置を取得
□投稿者/ やじゅ (1097回)-(2009/07/13(Mon) 18:47:01)
やじゅ さんの Web サイト
No38406 (hs さん) に返信
> 上記のコードをコピペしたのですが、'X(はSystem.Windows.Forms.MouseEventArgsのメンバではありませんとエラーになってしまします;
>

そんなわけはない、Clickイベントと間違えてませんか? MouseDownですよ。
引用返信 編集キー/
■38409 / inTopicNo.9)  Re[6]: プログレスバー クリックした位置を取得
□投稿者/ .SHO (968回)-(2009/07/13(Mon) 18:58:50)
> 申し訳ありません。伝え方が悪かったようです。
> プログレスバーとスライダーそれぞれ個別にクリックした位置にValueをセットしなおしたいということでしたm_ _m

そういうことか…失礼しました。

つか、質問、どっちか1個でよくね〜?
引用返信 編集キー/
■38410 / inTopicNo.10)  Re[7]: プログレスバー クリックした位置を取得
□投稿者/ hs (94回)-(2009/07/13(Mon) 19:00:28)
No38407 (やじゅ さん) に返信
> ■No38406 (hs さん) に返信
>上記のコードをコピペしたのですが、'X(はSystem.Windows.Forms.MouseEventArgsのメンバではありませんとエラーになってしまします;
>
> そんなわけはない、Clickイベントと間違えてませんか? MouseDownですよ。

重ね重ね申し訳ありません。WPFで開発しておりました。

WPFのMouseDownイベントの引数が違いました
Private Sub ProgressBar1_MouseDown(ByVal sender As System.Object, ByVal e As System.Windows.Input.MouseButtonEventArgs) Handles ProgressBar1.MouseDown

引用返信 編集キー/
■38420 / inTopicNo.11)  Re[8]: プログレスバー クリックした位置を取得
□投稿者/ Azulean (420回)-(2009/07/13(Mon) 22:53:57)
No38410 (hs さん) に返信
> 重ね重ね申し訳ありません。WPFで開発しておりました。
それは前提に書いておかないと混乱するかと思いますので、次回以降はご留意ください。

> WPFのMouseDownイベントの引数が違いました
> Private Sub ProgressBar1_MouseDown(ByVal sender As System.Object, ByVal e As System.Windows.Input.MouseButtonEventArgs) Handles ProgressBar1.MouseDown

座標を得るためにはGetPositionを使うようです。
http://msdn.microsoft.com/ja-jp/library/ms752097.aspx#using_default_hit_testing
引用返信 編集キー/
■38473 / inTopicNo.12)  Re[7]: プログレスバー クリックした位置を取得
□投稿者/ hs (96回)-(2009/07/16(Thu) 02:16:04)
■投稿者/ やじゅさん

>Private Sub ProgressBar1_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles >ProgressBar1.MouseDown
> 'Maximumプロパテを100なので、単純にマウスを押した位置をプログレスバーの幅で割ればいい。
> ProgressBar1.Value = CInt((e.X / ProgressBar1.Width) * 100)
>End Sub

■投稿者/ Azuleanさん
>座標を得るためにはGetPositionを使うようです。

みなさん説明不足で大変申し訳ありませんでした。
おかげ様で以下のようにしてプログレスバーのクリックした位置を取得できました

Private Sub ProgressBar1_MouseDown(ByVal sender As System.Object, ByVal e As _ System.Windows.Input.MouseButtonEventArgs) Handles ProgressBar1.MouseDown
ProgressBar1.Value = CInt((e.GetPosition(Nothing).X / (ProgressBar1.Width - ProgressBar1.Margin.Left)) * 100)
End Sub

また何かあった時は宜しくお願いします。


解決済み
引用返信 編集キー/


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

このトピックに書きこむ

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

管理者用

- Child Tree -