问题 如何以编程方式删除或删除按钮内的注释?

PoringGunner.

活跃的成员
加入
2014年2月23日
消息
42
编程经验
Beginner
你好。有人可以提供帮助吗?我本月需要完成我的项目 :(
我的问题是我如何删除此按钮内的注释(/ *)
        私有void button3_click(对象发件人,eventargs e)
        {
            /*
            if (richbox1.Text.Equals(richbox2.Text))
            {
                MessageBox.Show("Equal");
            }
            else
            { 
                MessageBox.Show("Not Equal"):
            }
             */
        }

当我单击CheckedBox时,我想删除它。有人可以帮忙吗?
提前致谢
 
最后编辑了主持人:

jmplhinney.

C#论坛主持人
工作人员
加入
2011年4月23日
消息
3,715
地点
悉尼,澳大利亚
编程经验
10+
不不不。你受到严重的误解。那些评论在运行时不存在,所以你怎么删除它们?源代码甚至不存在于运行时。您不会在运行时编辑源代码。您编写要在运行时进行适当的决策的源代码,并在运行时执行适当的任务。如果您只想在选中复选框时执行一些代码,则将其放在“IF”块中,该块评估该复选框的Checked属性:
私有void button3_click(对象发件人,eventargs e)
{
    if (checkBox1.Checked)
    {
        if (richbox1.Text.Equals(richbox2.Text))
        {
            MessageBox.Show("Equal");
        }
        else
        {
            MessageBox.Show("Not Equal"):
        }
    }
}
这是漂亮的小学的东西,所以你应该审查你正在学习的任何笔记或参考文本或教程。
 

PoringGunner.

活跃的成员
加入
2014年2月23日
消息
42
编程经验
Beginner
问题是..我没有表格上的RichTextBox。我只是在代码中创建RTB。像这样..
RichTextBox Rich = New RichTextBox {Parent = Tab,Dock = dockstyle.fill,name =" richbox"+ f.tostring(),启用= false}
它取决于OpenFileDialog ..它我浏览了多个文件示例。 5个文件..那么RTB将自动创建取决于浏览。愿另一个问题我不知道如何知道将创建的每个RTB的名称。
 

jmplhinney.

C#论坛主持人
工作人员
加入
2011年4月23日
消息
3,715
地点
悉尼,澳大利亚
编程经验
10+
这不是问题。您可以简单地将RichTextBoxes添加到集合中,然后按索引访问它们。或者,您似乎将每个RichTextBox添加到禁忌页,以便首先访问拟拟签名表签证,例如, TabControl的SelectentTab,然后获取通过其控件集合包含的RichTextBox。您甚至可以定义自己的类,该类继承绑定挂件并创建自己的RichTextBox并通过属性公开它。
 

jmplhinney.

C#论坛主持人
工作人员
加入
2011年4月23日
消息
3,715
地点
悉尼,澳大利亚
编程经验
10+
以下是最后一个建议的实施:
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
    internal class RichTextTabPage : TabPage
    {
        public RichTextTabPage()
        {
            this.RichTextBox = new RichTextBox();
            this.RichTextBox.Dock = DockStyle.Fill;
            this.Controls.Add(this.RichTextBox);
        }

        public RichTextBox RichTextBox { get; private set; }
    }
}
现在,您可以将该类的实例添加到TabControl而不是vanilla tabpages。您可以通过该属性访问每一个RichTextBox,例如,
this.tabControl1.TabPages.Add(new RichTextTabPage{Text = "RTF"});
var selectRichTextBox = ((RichTextTabPage) this.tabControl1.SelectedTab).RichTextBox;
 

jmplhinney.

C#论坛主持人
工作人员
加入
2011年4月23日
消息
3,715
地点
悉尼,澳大利亚
编程经验
10+
正如我已经说过的那样,他们的名字将是你将它设置到的,但这是无关紧要的,因为没有相应的变量。查看此代码例如:
Dim rtb1 As New RichTextBox

rtb1.Name = "MyRichTextBox"

Dim rtb2 As RichTextBox = rtb1
RichTextBox的名称是什么?它是RTB1吗?"MyRichTextBox"? RTB2?您需要了解RichTextBox和用于访问RichTextBox的变量并不相同。

正如我已经告诉过你的那样,如果使用示例代码,那么您将从“相应”签收挂件的RichTextBox属性中获取RichTextBox。你如何获得禁忌作品取决于您。一旦您对RichTextBox引用,您可以获得其文本或RTF或其他任何内容。你如何通过该参考来源于无关紧要。
 

PoringGunner.

活跃的成员
加入
2014年2月23日
消息
42
编程经验
Beginner
这是我的完整代码。而且我唯一的问题是..我不能打电话给RichBox名字。
        public void button1_Click(object sender, EventArgs e)
        {
            //Create opendialog            
            OpenFileDialog browse = new OpenFileDialog();
            browse.Filter = "Text File|*.txt";
            browse.Multiselect = true;
            browse.RestoreDirectory = true;
            
            if (browse.ShowDialog() == System.Windows.Forms.DialogResult.OK)
            {
                //Conditional Statement                                                               
                    foreach (TabPage tabcon in tabControl1.TabPages)
                    {
                        if (tabcon.Text == browse.SafeFileName)
                        {
                            tabControl1.TabPages.Remove(tabcon);
                            MessageBox.Show("File(s) already Exist! - " + tabcon.Text);                                                       
                            break;                            
                        }                                 
                    }
                    
                    foreach (String file in browse.FileNames)
                    {
                        //Create Tab control and tab pages
                        禁忌选项卡=新托盘(){text = system.io.path.getfilename(文件)};
                        tabcontrol1.tabpages.add(标签);
                        tabcontrol1.selectedtab = tab;
                        //Create richtextbox                 
                        RichTextBox Rich = New RichTextBox {Parent = Tab,Dock = dockstyle.fill,name ="richbox"+ f ++,启用= false};
                        Rich.LoadFile(文件,RichTextBoxStreamType.Plaintext);                        
                        字符串test1 = rich.name;
                        //Remove the blank lines and comments                
                        rich.Text = Regex.Replace(rich.Text, @"/\*()-_+=,.:;'\[]~`{}|<>*(.*?)\*/", "", RegexOptions.Multiline);
                        rich.Text = Regex.Replace(rich.Text, @"/\*(.*?)\*/", "", RegexOptions.Multiline);
                        rich.Text = Regex.Replace(rich.Text, @"//*(.*?)//", "", RegexOptions.Multiline);
                        rich.Text = Regex.Replace(rich.Text, @"//()-_+=,.:;'\[]~`{}|<>*(.*?)//", "", RegexOptions.Multiline);
                        rich.Text = Regex.Replace(rich.Text, @"^\s*$(\n)", "", RegexOptions.Multiline);
                        rich.Text = Regex.Replace(rich.Text, @" . ", "", RegexOptions.Multiline);
                        //Create label
                        Label numchar = new Label { Parent = tab, Dock = DockStyle.Top };
                        Label charnum = new Label { Text = " Characters" };
                        Label test = new Label { Text = " %" };
                        Label space = new Label { Text = " " };
                        //Count all characters
                        int letter = 0;
                        int count1 = 0;
                        int line = rich.Lines.Count();
                        int sum = 0;
                        int count = rich.Lines[0].Length;                        
                        string letonly = rich.Text;
                        foreach (char c in letonly)
                        {
                            if (char.IsLetter(c))
                            {
                                letter++;
                            }
                            if (char.IsDigit(c))
                            {
                                letter++;
                            }
                            if (char.IsSymbol(c))
                            {
                                letter++;
                            }
                            if (char.IsPunctuation(c))
                            {
                                letter++;
                            }
                            
                        }
                        foreach(char c in rich.Lines[0])
                        {
                            if(char.IsLetter(c))                            
                            {                               
                                count1++;
                                sum = count1 / count * 100;
                            }                           
                        }
                        numchar.Text = letter.ToString() + charnum.Text + space.Text + line.ToString() + space.Text + count.ToString() + space.Text + sum.ToString() + test.Text + test1.ToString();


                    }   
                }            
         }




如果你知道这里告诉我的错误是什么
 
最后编辑了主持人:

jmplhinney.

C#论坛主持人
工作人员
加入
2011年4月23日
消息
3,715
地点
悉尼,澳大利亚
编程经验
10+
重要的是要了解物体与对象的引用之间的区别,因此我将花更多的时间。编程对象在真实世界对象上建模,因此您通常应该查看真实世界的对象如何了解如何编程对象工作。考虑我的父亲。他的名字是汤姆。我姐姐和我叫他父亲,我母亲叫他丈夫,祖父母叫他儿子,我的叔叔和阿姨称他兄弟和他的足球队上的球员叫他队长。他只是一个人,他的名字是汤姆。那些其他人是指引用一个人的不同方式。

您的RichTextBox是相同的。它只是一个对象,它的名字是您将其名称属性设置为的。这并不在表单中神奇地创建成员变量。变量只是引用对象的方法。正如我在我之前的代码示例中所示,你可以有多个变量引用相同的对象,而且这些变量中的任何变量都必须匹配控件的名称。您甚至不必设置名称,您通常不会在运行时创建控件时。

您的相关点是,如果使用我的代码示例,则可以通过相应的RichTextTabp页的RichTextBox属性引用RichTextBox对象。您首先以适当的方式引用禁忌页面,然后您将引用RichTextBox从中引用。 Rerercence与您在设计器中添加了RichTextBox并使用成员变量来访问它时,reerlence完全相同。对RichTextBox的引用是对RichTextbox的引用,无论您如何由其出现。一旦您参考,就可以使用它。
 

jmplhinney.

C#论坛主持人
工作人员
加入
2011年4月23日
消息
3,715
地点
悉尼,澳大利亚
编程经验
10+
这是我的完整代码。而且我唯一的问题是..我不能打电话给RichBox名字。

如果你知道这里告诉我的错误是什么

有什么问题是你思考的方式。停止关注名称。名称无关。它是对象,而不是对象的名称,这是相关的。我告诉过你如何使用我的代码示例访问RichTextBox对象。如果您不打算使用我的代码,那么,正如我之前所说的那样,您可以通过控件收集其父级的控件来访问它,例如,
var rtb =(richtextbox)mytabpage.controls [0]
这假设禁忌挂件上没有其他控件与RichTextBox。您如何参考签布页取决于您。
 

PoringGunner.

活跃的成员
加入
2014年2月23日
消息
42
编程经验
Beginner
好的,我等了......我需要在这一天结束之前完成。
我需要将它传递给我的项目。 PLSS帮助 :( 对不起..我不知道我的代码有什么问题。这是我唯一的问题RTB的名称。因为当我浏览文本文件时它会自动创建。我需要每个比较按钮的名称..我需要你的帮助 :(
 

jmplhinney.

C#论坛主持人
工作人员
加入
2011年4月23日
消息
3,715
地点
悉尼,澳大利亚
编程经验
10+
显然你决心不明白我所说的是因为你坚持认为你需要这个名字尽管我反复告诉你这个名字并不相关。你不能帮助那些拒绝帮助的人,所以我不会再尝试进一步。
 

PoringGunner.

活跃的成员
加入
2014年2月23日
消息
42
编程经验
Beginner
噢..对不起,我没有看到你的帖子ealier抱歉。
我只是放了
var rtb =(richtextbox)mytabpage.controls [0]
到我的代码?并删除此代码
禁忌选项卡=新托盘(){text = system.io.path.getfilename(文件)};
tabcontrol1.tabpages.add(标签);
tabcontrol1.selectedtab = tab;
//Create richtextbox
RichTextBox Rich = New RichTextBox {Parent = Tab,Dock = dockstyle.fill,name ="richbox"+ f ++,启用= false};
Rich.LoadFile(文件,RichTextBoxStreamType.Plaintext);
字符串test1 = rich.name;
或者我只是把它放在里面?
 

PoringGunner.

活跃的成员
加入
2014年2月23日
消息
42
编程经验
Beginner
你的意思是,我会把它放在其他按钮吗?像这样
私有void button3_click(对象发件人,eventargs e)
{
var rtb =(richtextbox)mytabpage.controls [0]
}


[0]是什么意思?我很困惑使用它.. :(
 

jmplhinney.

C#论坛主持人
工作人员
加入
2011年4月23日
消息
3,715
地点
悉尼,澳大利亚
编程经验
10+
你的意思是,我会把它放在其他按钮吗?像这样
私有void button3_click(对象发件人,eventargs e)
{
var rtb =(richtextbox)mytabpage.controls [0]
}


[0]是什么意思?我很困惑使用它.. :(

我不知道是什么按钮3。如果它有一个实际给出其目的的名称,那么我会的目的。您将该代码放在代码中要使用Tyhe RichTextBox。如果您想在用户点击Button3时使用RichTextBox,那么就在您放置的位置。当然,您需要更多代码,以便实际使用您刚刚引用的RichTextBox以使其有用。

控件是一个集合,它包含父控件的所有子项。 Tabpage是父级,RichTextBox是孩子,因此RichTextBox位于签收的控件集合中。您可以按索引访问集合中的项目,因此控件[0]是索引零的项目,即第一项。
 

PoringGunner.

活跃的成员
加入
2014年2月23日
消息
42
编程经验
Beginner
好的,我了解..我使用该按钮3比较每个RichTextBox的内容。 IE
一个RichTextBox包含"how to compare"
而另一个RichTextBox Constaisn不同..我应该怎么做?这是可能的吗?并给出结果?
 

jmplhinney.

C#论坛主持人
工作人员
加入
2011年4月23日
消息
3,715
地点
悉尼,澳大利亚
编程经验
10+
我担心我不会继续重复自己。我告诉过你如何参考你的一个richtextboxes。一旦您有一个引用,那么您通常会像您一样使用它。
 

PoringGunner.

活跃的成员
加入
2014年2月23日
消息
42
编程经验
Beginner
var rtb =(richtextbox)mytabpage.controls [0]
所以这就是我需要放入Button3的全部吗?访问RichTextBoxes的所有内容。
示例我比较了2个richtextboxes
if(rich.line [0] .length.equals(rich.line [0] .length))
{
MessageBox.Show("Equal");
}

我认为它只会达到平等。每当RichTextboxes不等于?
 
最佳 底部