C# 对Panel设置Mouseclick事件 4RadioButton触发跳出Messagebox

我想完成这样一个操作一个Panel的Mouseclick事件中有四个单选框我想在一个Mouseclick事件里面把4个MessageBox按不同的RadioButton跳... 我想完成这样一个操作 一个Panel的Mouseclick事件中 有四个单选框 我想在一个Mouseclick事件里面把4个MessageBox 按不同的RadioButton 跳出不同的MessageBox 就是说在一个Panel里有 ABCD4个单选框 如果按A就弹出选择了答案A的消息框以此类推 C# 代码 请附上源代码 展开
 我来答
匿名用户
2013-08-16
展开全部
如果将窗体或容器控件(如Plael控件)的AutoScroll属性设置为True时,那么当窗体或Panel容不下其中的子控件时就会出现滚动条,通过移动滚动条可以上下显示出窗体或Panel中的全部内容。但是默认情况下滚动条的移动只能通过鼠标直接拖动滚动条来实现,而不能通过鼠标的滚轮来实现上下移动,因此需要手动添加代码来实现这个功能。滚动鼠标的滚轮,触发的是窗体或控件上的 MouseWheel 事件。但是在VS.net2005中,窗体和控件的事件列表中却不包含 MouseWheel 事件,因此关于这个事件的全部代码必须手动输入。这里以添加一个Panel的 MouseWheel 事件为例。首先在窗体的构造函数或InitializeComponent函数中,添加对MouseWheel 事件的订阅: this.Panel.MouseWheel += new System.Windows.Forms.MouseEventHandler(this.Panel_MouseWheel);
这样只是使Panel能接收鼠标的滚动事件,但还不能实现滚动条的上下移动,因此还需要添加以下代码: private void Panel_MouseWheel(object sender, MouseEventArgs e)
{
Panel.VerticalScroll.Value += 10;
Panel.Refresh();
Panel.Invalidate();
Panel.Update();
}
如果添加了以上代码,就认为万事大吉了,那就大错特错了。运行以上的程序,可以发现,Panel控件并不能对鼠标滚轮事件做出反应,原因是Panel控件默认不能获得焦点,因此它就不能捕获鼠标,也就不能捕获鼠标的滚轮事件。解决方法是让Panel控件先获得焦点,可以通过Panel的MouseClick事件或MouseEnter事件来执行this.Panel.Focus()以达到目的。这样当鼠标点击了Panel控件或移动到Panel控件上时它就获得了焦点。因此还需要添加以下代码: view source print? 1private void Panel_MouseClick(object sender, MouseEventArgs e) 2{ 3this.Panel.Focus(); 4}
这样再执行程序,就可以达到通过鼠标滚动来移动滚动条的目的了。除此之外还要说的一点是,触发鼠标的滚动事件后,处理事件的函数参数 MouseEventArgs e 中有个Delta属性,默认情况下向上滚动e.Delta=120,向下滚动e.Delta=-120。
匿名用户
2013-08-16
展开全部
C#不熟,我用VB,试写如下,置RadioButton 的TAG属性分别为 A,B,C,D如果panel1中还有其它控件,自己判断一下是不是就行了。
private void panel1_MouseClick(object sender, MouseEventArgs e)
{

foreach ( Control c in panel1.Controls)
{
if (((RadioButton )c).Checked )
{
MessageBox.Show ((string ) c.Tag) ;
}
} }
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-08-16
展开全部
先设置一个rdo的click事件string message=((RadioButton)sender).Text;MessageBox.Show(message);然后把剩下3个rdo的Click事件,都指向这个,也就是说4个rdo共用1个事件
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-08-16
展开全部
唉.....现在的复制党啊...各个RadioButton的text实现把ABCD写好.然后在Click事件里面这么写.foreach (Control cc in panel1.Controls)
{
RadioButton rb = cc as RadioButton;
if (rb.Text == "A" && rb.Checked)
{
MessageBox.Show("您选择了A!");
}

}剩下的我就不多写了.你举一反三吧.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式