VC驿站

 找回密码
 加入驿站

QQ登录

只需一步,快速开始

搜索
查看: 267|回复: 2

求助 System::Object^ sender, 如何访问,Sender内部的成员

[复制链接]
38_avatar_middle
最佳答案
0 
在线会员 发表于 2022-3-30 17:40:04 | 显示全部楼层 |阅读模式
本帖最后由 zmrghy 于 2022-3-30 21:00 编辑

还是之前,计算平面直角坐标系俩圆关系的小软件。。
绘图,已经学会CreateGraphics();在CLR窗口绘图
不再使用system("");去调用EasyX绘图了。
绘图过程虽然比EasyX绘图麻烦一些,总算可以在一个软件中完成了。
点击计算时,不用闪过黑色控制台窗口,和绘图窗口了。

计算用的6个参数变量,如果输入过大,计算电脑计算不会说累,但无法完整绘图。
用来输入6个变量的文本框,做一点小小的限制。
1,只允许输入3位数字。
2,第一位,数字不能为0 。



第一位,数字不能为0 。这个功能遇到了点小麻烦。。。
思路,没问题。
语法,不正确。
总想,把小软件做的完善一些。
想不到,自己连基本的语法都不会。
一直停留C语言控制台程序,“百钱买鸡”的水平。。。。


private: System::Void textBoxX1_KeyPress( System::Object^  sender, System::Windows::Forms::KeyPressEventArgs^  e)
                 {

                        ………………
                }

在这个函数中,如何访问sender指向类成员的数值。。。。
自学编程,没经过系统学习,可能一些问题表述不是很清楚和准确。。。
具体问题,在图片中已经标出来了。。。
求助 System::Object^  sender,  如何访问,Sender内部的成员
求助 System::Object^  sender,  如何访问,Sender内部的成员
求助 System::Object^  sender,  如何访问,Sender内部的成员


求助 System::Object^  sender,  如何访问,Sender内部的成员 CLR.rar (773.66 KB, 下载次数: 0)




上一篇:很简单的c++题目,帮我看看怎么做
下一篇:MFC
38_avatar_middle
最佳答案
0 
ico_lz  楼主| 发表于 2022-3-31 22:22:16 | 显示全部楼层
找到了一个,解决方法。

  1. private: System::Void textBoxX1_KeyPress(System::Object^  sender, System::Windows::Forms::KeyPressEventArgs^  e)
  2.                  {
  3.                          if ((e->KeyChar < '0' || e->KeyChar > '9') && e->KeyChar != 8)
  4.                                 e->Handled = true;
  5.                         //else if(e->KeyChar == '0' && sender->Text == "")
  6.                                 // e->Handled = true;
  7.                          else if(e->KeyChar == '0')
  8.                          {
  9.                                  if(sender == textBoxX1)
  10.                                  {
  11.                                          if(textBoxX1->Text == "")
  12.                                                  e->Handled = true;
  13.                                  }
  14.                                  else if(sender == textBoxY1)
  15.                                  {
  16.                                          if(textBoxY1->Text == "")
  17.                                                  e->Handled = true;
  18.                                  }
  19.                                  else if(sender == textBoxR1)
  20.                                  {
  21.                                          if(textBoxR1->Text == "")
  22.                                                  e->Handled = true;
  23.                                  }
  24.                                  else if(sender == textBoxX2)
  25.                                  {
  26.                                          if(textBoxX2->Text == "")
  27.                                                  e->Handled = true;
  28.                                  }
  29.                                   else if(sender == textBoxY2)
  30.                                  {
  31.                                          if(textBoxY2->Text == "")
  32.                                                  e->Handled = true;
  33.                                  }
  34.                                   else if(sender == textBoxR2)
  35.                                  {
  36.                                          if(textBoxR2->Text == "")
  37.                                                  e->Handled = true;
  38.                                  }
  39.                          }
  40.                          

  41.                  }
复制代码




没想到,还可以这样判断if(sender == textBoxX1)
else if……else if……else if……
感觉,这个方法好笨,,,,这么多代码。。。
虽然,一个函数解决6个文本框限制输入功能。
好像还不如使用6个函数呢!!!!!!


大家有没有,简洁的方法呀???
System::Object^ 不支持switch() 分支

原先,想用的方法
if ((e->KeyChar < '0' || e->KeyChar > '9') && e->KeyChar != 8)
        e->Handled = true;
else if(e->KeyChar == '0' && sender->Text == "")
        e->Handled = true;

error C2872:
error C2882:
看不懂什么意思。。。
自己东一榔头,西一棒槌自学的编程,就是不行。。。
遇到问题看不懂,不会处理,只能绕路而行。。。
38_avatar_middle
最佳答案
0 
ico_lz  楼主| 发表于 2022-3-31 22:23:37 | 显示全部楼层
大家,有没有,简洁的方法呀。。。。
您需要登录后才可以回帖 登录 | 加入驿站 qq_login

本版积分规则

×【发帖 友情提示】
1、请回复有意义的内容,请勿恶意灌水;
2、纯数字、字母、表情等无意义的内容系统将自动删除;
3、若正常回复后帖子被自动删除,为系统误删的情况,请重新回复其他正常内容或等待管理员审核通过后会自动发布;
4、感谢您对VC驿站一如既往的支持,谢谢合作!

关闭

站长提醒上一条 /2 下一条

QQ|小黑屋|手机版|VC驿站 ( 辽ICP备09019393号-4 )|网站地图wx_jqr

GMT+8, 2022-12-10 02:15

Powered by CcTry.CoM

© 2009-2021 cctry.com

快速回复 返回顶部 返回列表