|
Oops. My bad. The debugger doesn't show all strings verbatim, it shows them only for
1. those that have the @ and have escaped characters, for eg, @"senthil\n".
2. those that don't have an @ but still have escaped characters, like "senthil\\". "\n", "\t" seem to be exceptions to this rule.
Anyway, your problem is because format has a literal \n in it, that is, format = @"The user says \n". You'd need to search for the literal \n ("\\n" or @"\n") and replace it with the line breaking character. In short
string x = @"senthil\n";
string y =x.Replace(@"\n", "\n");
Console.WriteLine(y);
will do what you want.
Regards
Senthil
_____________________________
My Blog | My Articles | WinMacro
|
|
|
|
|
Senthil,
Yes - this does indeed solve the problems for newlines, and is the route I had started down. However the issue with this approach is the I have to code up a method that knows about all of the escape codes and transforms them. I was hoping to find a method that didn't require that I capture this information in code.
However I can't think of anything better and it should be possible to write a big regexp that covers of the escape sequences I want to allow.
Thanks for the help
Jackson
|
|
|
|
|
I don't think XML data that is read can contain linebreaks, as the XML parser ignores linebreaks and spaces between tags (NOT for attribute values though). So I think you have to anway convert literal \n s to linebreaks anyway.
Regards
Senthil
_____________________________
My Blog | My Articles | WinMacro
|
|
|
|
|
I think your right.
Thanks Jackson
|
|
|
|
|
I'm not sure I completely understand your problem. However, I gather you simply find it a nuisance to have to write an extra / mark in your code. I made a little utility a while ago, that if you paste any text you want to send to a textbox, you simply paste or enter the text you want formatted. Then click process, and it inserts all the slash marks, and etc. Then you paste that code into your application, and voilla, you can have the text programmatically inserted into a textbox or richTextBox. idk if it's useful or not, but you can download it here (I find it handy for entering multiple lines of code):
http://www.teched.coe.ohio-state.edu/lugnut/stephen/Text%20Formatting%20Revealer.zip
if it helps you any let me know. I'm aware the output is somewhat sloppy, nevertheless it works with 100% functionality as far as I've tested it.
good luck solving your problem,
Stephen
|
|
|
|
|
Hi!
Is it possible to index textboxes? What I mean is: instead of having TextBox1, TextBox2 and TextBox3 have something like an array of textboxes - TextBox(1), TextBox(2), TextBox(3) - and be able to accessed them with, for example, a FOR statement:
for (int i=0; i!=4; i++)
{
TextBox(i).Text = "hello";
}
Thank you for helping!
|
|
|
|
|
Yes it is, but obviously you won't be able to use it from the designer.
You can create them like
class MyForm : Form
{
private TextBox []boxes;
public MyForm(int count)
{
boxes = new TextBox[count];
foreach(TextBox box in boxes)
{
this.Controls.Add(box);
}
}
}
Regards
Senthil
_____________________________
<font face="Verdana" size="1"><a href="http://blogs.wdevs.com/senthilkumar">My Blog</a> | <a href="http://www.codeproject.com/script/articles/list_articles.asp?userid=492196">My Articles</a> | <a href="http://geocities.com/win_macro">WinMacro</a></font>
|
|
|
|
|
|
Yes. If you are creating the text boxed dynamically then it is easy enough to put them in an array. If the text boxes are created in the designer then you need to populate an array after InitialiseComponent* is called - the array should be declared as a member variable in your form class. You can then refer to the array and iterate through it.
* DISCLAIMER: This may not be the exact name of the method, I'm going from memory here. In any event I am referring to the method that Visual Studio modifies when you make changes in the designer.
My: Blog | Photos
WDevs.com - Open Source Code Hosting, Blogs, FTP, Mail and More
|
|
|
|
|
|
An alternative approach could be to generate the array dynamically, the framework is already storing references to all of the controls, both static and dynamic, so you can just recurse through the ControlCollections pulling out all of the ones of the required type.
<br />
private void searchControlTree(ControlCollection colControls , ArrayList allCtls, System.Type ctlType)<br />
{<br />
foreach (Control c in colControls )<br />
{<br />
if ( c.GetType() == ctlType)<br />
allCtls.Add(c) ;<br />
<br />
if (c.Controls.Count > 0 )<br />
searchControlTree(c.Controls, allCtls, ctlType ) ;<br />
}<br />
}<br />
<br />
public ArrayList findControlByType( System.Type ctlType)<br />
{<br />
ArrayList allCtls = new ArrayList();<br />
searchControlTree(this.Controls, allCtls, ctlType) ;<br />
<br />
return allCtls ;<br />
}<br />
<br />
ArrayList a = findControlByType( typeof(TextBox)) ;
If you need a real array at the end the ArrayList has a ToArray() method. If you combine this approach to finding the controls together with the control Name or Tag properties you can filter out whatever controls you want.
Hope this is usefull Jackson
|
|
|
|
|
I think there is better way to use for or foreach for with textbox.
Example make the textboxes inside a groupbox and then:
<br />
<br />
foreach(Control c in gb)<br />
{<br />
if(c.GetType().ToString()=="System.Windows.Forms.TextBox") <br />
{<br />
c.Text="Hello";<br />
}<br />
}<br />
I often use this trick to clear all trextboxes in my form :->
|
|
|
|
|
Hello you!
I need Your HELP.
I have my own TreeView Nodes Editor, in order to add 'MyTreeNode'', like node which are ComboBox and so.
I have two classes. one inherit from 'TreeView' and the other from 'TreeNode'.
In 'MyTreeView' i override 'Nodes' (keyword- new) in order to open my custom editor.
In public partial class MyTreeView : TreeView, I use the next statement:
[
DesignerSerializationVisibility(DesignerSerializationVisibility.Content),
Editor(typeof(NodesTypeEditor), typeof(UITypeEditor)),
]
new public TreeNodeCollection Nodes
{
get { return base.Nodes; }
set
{
TreeNode[] myTreeNodeArray = new TreeNode[((TreeNodeCollection)value).Count];
((TreeNodeCollection)value).CopyTo(myTreeNodeArray, 0);
((TreeNodeCollection)value).Clear();
this.Nodes.AddRange(myTreeNodeArray);
}
}
but the DesignerSerializationVisibility create the next code, which produce casting error on run time:
MyCheckTreeNode myCheckTreeNode1 = ((MyCheckTreeNode)(new TreeNode("TreeNode")));
I need it to be :
MyCheckTreeNode myCheckTreeNode1 = new MyCheckTreeNode("TreeNode");
In the editor i use TreeView and PropertyGrid. the code in 'Add CheckBox Node' is:
treeView1.Nodes.Add(new MyCheckTreeNode("TreeNode"));
How can i fix it???
Please Help me. I need it fast.
Thanks,
Ran S'
|
|
|
|
|
Hi, I have a form, let's say Form1, in Form1 I have some code in its Load event handler, now I want to close Form1 if the code in its Load event handler throws an exception.
this.close() simply doesn't work from inside the Load event handler.
Thanks for any suggestions...
(a.k.a. Wal2k) www.wal2k.com
|
|
|
|
|
I don't know why do you want to close a form immediatelly, but the metod is:
<br />
private void Form1_Load(object sender, System.EventArgs e)<br />
{<br />
this.Close();<br />
}<br />
It must works!
|
|
|
|
|
What about
Application.Exit();
|
|
|
|
|
Simply you can :
void form1_load(object sender,eventargs e)
{
CloseIt();
}
void CloseIt()
{
this.Close();
}
|
|
|
|
|
hi,
Waleed wrote:
now I want to close Form1 if the code in its Load event handler throws an exception.
The reason why your form didn't close ( but crashed ) is because exceptions change flow of your program. You have to wrap exception throwing code with try-catch block.
void Page_Load(...)
{
try
{
YourCodeWhichThrowsAndException();
}
catch{ this.Close(); }
}
Does it help?
David
|
|
|
|
|
A much better method would be to determine if your form needs to be displayed before you even instantiate it.
RageInTheMachine9532
"...a pungent, ghastly, stinky piece of cheese!" -- The Roaming Gnome
|
|
|
|
|
hello, thanks for all your replies .. I'm afraid though the problem hasn't been solved .. as I said in my first post, using this.Close() doesn't work at all, doesn't matter if you call it directly from the Load event handler (let's say Form1_Load) or put it in a method and call this method from within Form1_Load.. it still doesn't work!
(a.k.a. Wal2k) www.wal2k.com
|
|
|
|
|
I agree with Dave Kreskowiak, but in this case I have to put all the code in another form, for example if I have two forms, Form1 and Form2, and I want to open Form2 from within Form1, in this case I have to put all the code I have in Form2_Load in that place in Form1 where I create a new instance of Form2, this is something I don't want to do. To make things clearer, let's say I have a form on which I display data retrieved from a database, I put the code that retrieves the data in the Load event handler for that form, now what I want is that if something goes wrong while retrieving the data, the form is closed before it's even shown to the user.
(a.k.a. Wal2k) www.wal2k.com
|
|
|
|
|
There could be two approaches that I can think of that may be of use. The first would involve creating a Timer event, and if the data fails, start the Timer and allow the Load event to close and maybe a second or something liket that before firing it to close the Form. The second is to use a ShowDialog() error box inside the load before the form itself gets loaded, and upon the error window exiting, close the form. I have done the second, however using Application.Exit() so it may not work for simply closing the form. I would say the timer is the best approach.
Also do you just have one form that you want to close or is a child form (havent read through the posts) because if I do this.Close() in the main or child in the Load it does close it. Maybe you have to Garbage Collect or cleanup the variables?
|
|
|
|
|
Then put the code into a seperate public function of Form2 and call it prior to showing it (either catch the exception in Form1 or catch it in the function and return False indicating something went wrong).
|
|
|
|
|
i need to get more information about png files becouse i know it support vector object datas over the image bitmap inside.
How can i create a png with that data (like it does fireworks).
Or are there web side that give information about this file format?
|
|
|
|
|